class CA
{
public:
CA(int a, int b, int c) {m_a = a; m_b = b; m_c = c; std::cout << "Constructor CA\n";};
CA(const CA &a) { m_a = a.m_a; m_b = a.m_b; m_c = a.m_c; std::cout << "Copy Construcotr:CA\n";}
public:
int m_a;
int m_b;
int m_c;
};
class CB: public CA
{
public:
CB():CA(0, 1, 2){ std::cout << "Constructor CB\n";};
};
那执行到语句 a=b时候,会调用构造函数吗??[Quote=引用 5 楼 的回复:]
#include<iostream>
using namespace std;
class A
{
public:
A(int a,int b,int c){cout<<"构造A类"<<endl;x=a;y=b;z=c;}
print(){cout<<x<<"\t"<<y<<"\t"<<z<<"\t";}
private:
int x,y,z;
};
class B:publi……
[/Quote]
#include<iostream>
using namespace std;
class A
{
public:
A(int a,int b,int c){cout<<"构造A类"<<endl;x=a;y=b;z=c;}
print(){cout<<x<<"\t"<<y<<"\t"<<z<<"\t";}
private:
int x,y,z;
};
class B:public A
{
public:
B(int a,int b,int c):A(a,b,c){cout<<"构造B类\n";}
};
int main()
{
B b(4,5,6);
A a(1,2,3);
a=b;
b.print();
a.print();
return 0;
}
确实可以的