C++ 类和动态内存分配

来源:互联网 发布:淘宝店铺装修全屏宽图 编辑:程序博客网 时间:2024/06/05 06:34

重载特殊的一个:

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  调用复制构造函数,一般不调用赋值操作符。

原创粉丝点击