了解构造函数

问题描述 投票:0回答:0
LongNumber::LongNumber() : number_{0} {}
LongNumber::LongNumber(const LongNumber& copyNum) : number_{copyNum.number_} {}
LongNumber::LongNumber(LongNumber&& num) : number_{num.number_} {}
**LongNumber::LongNumber(const long long& num) : number_{num} {}
LongNumber::LongNumber(long long&& num) : number_{num} {}
**
**LongNumber& LongNumber::operator=**(const LongNumber& copyNum) {
if(this!=&copyNum) number_=copyNum.number_;
return *this;
}
**LongNumber& LongNumber::operator=**(LongNumber&& num) {
number_=std::move(num.number_);
 return *this;
 }

LongNumber::LongNumber(const long long& num)
,
LongNumber::LongNumber(long long&& num)
和 之间有什么区别
LongNumber& LongNumber::operator=**(const LongNumber& copyNum)
LongNumber& LongNumber::operator=**(LongNumber&& num)
?最后两个应该是复制和移动赋值运算符,但为什么我们需要前两个,它们的目的是什么?谢谢

我试着用谷歌搜索来了解更多,但我需要这个例子的确切答案

c++ constructor move-semantics
© www.soinside.com 2019 - 2024. All rights reserved.