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

文章结束给大家分享下程序员的一些笑话语录: 人脑与电脑的相同点和不同点,人脑会记忆数字,电脑也会记忆数字;人脑会记忆程序,电脑也会记忆程序,但是人脑具有感知能力,这种能力电脑无法模仿,人的记忆会影响到人做任何事情,但是电脑只有程序软件。比尔还表示,人脑与电脑之间最重要的一个差别就是潜意识。对于人脑存储记忆的特别之处,比尔表示,人脑并不大,但是人脑重要的功能是联络,人脑会把同样的记忆存储在不同的地方,因此记忆读取的速度就不相同,而这种速度取决于使用的频率和知识的重要性。人脑的记忆存储能力会随着年龄增长而退化,同时记忆的质量也会随着年龄退化。经典语录网

posted @ 2013-04-27 19:12  xinyuyuanm  阅读(445)  评论(0编辑  收藏  举报