可以为同一个类编写许多不同的构造函数(可重载),在每个构造函数中有不同的变量或变量类型。 默认构造函数,每个函数都应该有一个默认的构造函数,它没有任何参数。系统提供的默认构造函数就简单地把所有成员变量初始化为0(但没认为编写默认构造函数时,系统会简单提供一个隐藏的默认构造函数)。 复制构造函数,当函数中对象作为值传递或函数返回一个对象时,系统自动调用复制构造函数。如果没认为地编写复制构造函数时,系统会简单地产生一个隐藏的复制构造函数,它完成成员到成员的复制(不共享数据,除了指针使用处外)。 一般我们使用引用来定义复制构造函数,它产生一个对象的别名,所以两个对象共享同一数据块。但这样容易毁坏数据。如CStr::CStr(CStr &CStr),注意其中每个CStr的含义。 当使用Const关键字限制时,就可以避免错误的发生。CStr::CStr( Const CStr &CStr),这样复制构造函数就不能改变原始数据的任何值。 复制构造函数:CStr name2= name1 ; 与 CStr name2(name1);是等价的。其中第一句并不是name2调用默认初始化函数,然后再将name1的值赋给它,而是与第二句一样,调用复制构造函数。

评论