- 论坛徽章:
- 0
|
- #include <iostream>
- using namespace std;
- class A
- {
- public:
- int data;
- A()
- {
- data=0;
- cout<<"A()"<<data<<endl;
- }
- A (int a)
- {
- data=a;
- cout<<"A(int a)"<<endl;
- }
- A(A &a)
- {
- data=a.data;
- cout<<"A(A &a)"<<data<<endl;
- }
- A& operator =(A& a)
- {
- this->data=a.data;
- cout<<"operator ="<<data<<endl;
- return *this;
- }
- };
- int main()
- {
- A a(3);
- A b=3;
- return 0;
- }
复制代码 A b=3应该是复制初始化吧,
“复制初始化调用构造函数创建一个临时对象,然后将该临时对象作为参数调用复制构造函数”根据这句话的理解那么 A b=3,应该先调用 A(int)带参数的构造函数创建一个临时对象 然后再调用拷贝构造函数将临时对象复制给b
但是我在断点执行的时候 只调用A (int)构造函数就完了 不会进入拷贝构造函数这是什么原因?? |
|