构造函数调用C++ 类和动态内存分配
本文纯属个人见解,是对前面学习的总结,如有描述不正确的地方还请高手指正~
载重特别的一个:
void name() const; // 只能被const类型的对象调用
void name(); // 被一般的对象调用
是个载重的函数,载重可以以函数类型和个数,以及函数限制符(const)来别区载重的函数
C++主动供提了上面这些成员函数:
认默构造函数,如果没有义定构造函数
复制构造函数,如果没有义定
赋值操作符,如果没有义定
认默析构函数,如果没有义定
地址操作符,如果没有义定。
载重 << 操作符
义定上面元友
ostream & opeartor << (ostream & os, const c_name & obj) { os << ...; return os; }
复制构造函数的一般情势
class name(const classname &);
复制构造函数被调用的情势:
假设 A 是一个string对象
string B(A)
string C = A
string D = string(A)
string *E = new string(A);
还有每当编译器成生副本都调用复制构造函数。具体来说,当函数安值传递对象或函数返回对象时,调用复制构造函数。
赋值操作符的一般情势
c_name & c_name::operator = (const c_name & cn) { if(this == &cn) return *this; delete[] c_pointer; //放释原类中的指针指向的容内 c_pointer = new type_name[size]; ...... return *this; }
只有 A = B 才调用赋值操作符,而 string A = B 调用复制构造函数,一般不调用赋值操作符。
文章结束给大家分享下程序员的一些笑话语录: 人脑与电脑的相同点和不同点,人脑会记忆数字,电脑也会记忆数字;人脑会记忆程序,电脑也会记忆程序,但是人脑具有感知能力,这种能力电脑无法模仿,人的记忆会影响到人做任何事情,但是电脑只有程序软件。比尔还表示,人脑与电脑之间最重要的一个差别就是潜意识。对于人脑存储记忆的特别之处,比尔表示,人脑并不大,但是人脑重要的功能是联络,人脑会把同样的记忆存储在不同的地方,因此记忆读取的速度就不相同,而这种速度取决于使用的频率和知识的重要性。人脑的记忆存储能力会随着年龄增长而退化,同时记忆的质量也会随着年龄退化。经典语录网