构造函数调用次数的问题
#include<iostream>usingnamespacestd;classA{public:A(){n=1;cout<<"build\n";}A(inti){n=...
#include <iostream> using namespace std; class A { public: A(){n=1;cout<<"build\n";} A(int i){n=i;cout<<"build(n)\n";} ~A(){cout<<"delete\n";} A(const A&a){n=a.n;cout<<"copy"<<endl;} void set(int x){n=x;} int get()const{return n;} A operator++() { ++n; return *this; } private: int n; }; 主函数按以下两种方法写。(区别仅在b的定义) 第一种 int main() { A a; a.set(10); A b=++a; cout<<a.get()<<endl; cout<<b.get()<<endl; return 0; } 第二种 int main() { A a,b; a.set(10); b=++a; cout<<a.get()<<endl; cout<<b.get()<<endl; return 0; } 问题:为什么第一种只调用一次构造函数,而第二种调用两次构造函数呢? 请高手赐教。
展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询