D
G
O
L

拷贝构造函数

拷贝构造函数

用一个已存在的对象创建新的对象,不会调用(普通)构造函数,而是调用拷贝构造函数。

如果类中没有定义拷贝构造函数,编译器将提供一个拷贝构造函数,它的功能是把已存在对象的成员变量赋值给新对象的成员变量。

用一个已存在的对象创建新的对象语法:

类名 新对象名(已存在的对象名);

类名 新对象名=已存在的对象名;

拷贝构造函数的语法:

类名(const 类名& 对象名){......}

注意:

l 访问权限必须是public。

l 函数名必须与类名相同。

l 没有返回值,不写void。

l 如果类中定义了拷贝构造函数,编译器将不提供默认的拷贝构造函数。

l 以值传递的方式调用函数时,如果实参为对象,会调用拷贝构造函数。

l 函数以值的方式返回对象时,可能会调用拷贝构造函数(VS会调用,Linux不会,g++编译器做了优化)。

l 拷贝构造函数可以重载,可以有默认参数。

类名(......,const 类名& 对象名,......){......}

l 如果类中重载了拷贝构造函数却没有定义默认的拷贝构造函数,编译器也会提供默认的拷贝构造函数。

posted @ 2023-02-12 14:37  jinganglang567  阅读(39)  评论(0)    收藏  举报