您的位置:首页 > 其它

区分三种不同的对象构造方式

2007-01-03 20:44 253 查看
由一个类构造一个对象有多种构造方式,以下代码展示各种构造方式:


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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: