牛客 C++刷题day25

1.在一个对象未建立起来时通常用的是拷贝构造函数,而对象建立起来之后的复制拷贝就需要使用赋值运算符重载了。

拷贝构造函数形式如下:

CExample(const CExample& C) 就是我们自定义的拷贝构造函数。可见,拷贝构造函数是一种特殊的构造函数,函数的名称必须和类名称一致,它必须的一个参数是本类型的一个引用变量

调用场合有:当函数的参数为类的对象时;函数的返回值是类的对象;对象需要通过另外一个对象进行初始化。

拷贝构造函数时默认浅拷贝,即只对新对象的值进行简单复制。而深拷贝则需要更为复杂的操作,简单赋值并不能解决问题。比如A中有int *p=new int(100)。

赋给B时则不能简单的B.p=A.p应该是需要在B中重新进行new操作。这就是深浅的区别。

还有一点,系统可以帮我们自动进行浅拷贝比如 CLASS A(B)。这样的操作。即使CLASS中没有拷贝构造函数的定义,我们也仍然可以达到目的。

2.在计算机中,表示汉字时,UTF-16是用2个字节,UTF-8是用三个字节。如果保存成文本文件,还需要标识,UTF-16占用两个字节,UTF-8占用三个字节。

猜你喜欢

转载自www.cnblogs.com/Tonarinototoro/p/11600765.html