![]() 1 /* 为什么 赋值操作 没有被执行。*/ 2 #include<iostream> 3 4 class NoName 5 { 6 public: 7 NoName(){std::cout << "good defualt" << std::endl;} 8 NoName(const NoName& obj){std::cout << "good copy" << std::endl;} 9 NoName(int i):ivar(i){std::cout << "good no_default" << std::endl;} 10 ~NoName(){std::cout << "No" << std::endl;} 11 NoName& operator=( NoName& obj) 12 { 13 ivar = obj.ivar; 14 std::cout << "hello" << std::endl; 15 return *this; 16 } 17 private: 18 int ivar; 19 }; 20 21 int main() 22 { 23 int i = 3; 24 NoName a; 25 NoName b(a); 26 NoName c(i); 27 NoName d = c; // 这是构造,定义。不是赋值......复制函数的一种形式 28 // d= c; //这才是赋值。 29 return 0; 30 } |
![]() |
![]() |
![]() |