由一个类构造一个对象有多种构造方式,以下代码展示各种构造方式:
class
Int

...
{
public:
Int()

...{
cout << "Default Constructor" << endl;
}
Int(int a) : a_(a)

...{
cout << "Direct Constructor" << endl;
}
Int(const Int& other)

...{
cout << "Copy Constructor" << endl;
a_ = other.a_;
}
Int& operator =(const Int& other)

...{
cout << "Copy Assign Operator" << endl;
a_ = other.a_;
return *this;
}

private:
int a_;
}
;

int
main(
int
argc,
char
*
argv[])

...
{
int u = 10;

cout << "Int t1: ";
Int t1;
cout << "Int t2(): Prototyped Function" << endl;
Int t2();
cout << "Int t3(u): ";
Int t3(u);
cout << "Int t4 = u: ";
Int t4 = u;
cout << "Int t5(t4): ";
Int t5(t4);
cout << "Int t6 = t4: ";
Int t6 = t4;
cout << "t1 = t4: ";
t1 = t4;

return getchar();
}























































下面是运行后的结果:
Int t1: Default Constructor
Int t2(): Prototyped Function
Int t3(u): Direct Constructor
Int t4 = u: Direct Constructor
Int t5(t4): Copy Constructor
Int t6 = t4: Copy Constructor
t1 = t4: Copy Assign Operator