天天看点

构造函数调用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;
}      

继续阅读