快捷搜索:   服务器  安全  linux 安全  MYSQL  dedecms

C++箴言:了解C++偷偷加上和调用了什么

      几乎每一个你自己写的类都会有一个或多个构造函数,一个析构函数和一个拷贝赋值运算符。不要惊奇,那是些就像你的面包黄油一样的函数,他们控制着基本的操作,如创建一个新的对象并确保已被初始化,消除一个函数并确保它被完全清除,以及为对象赋予一个新值。这些函数中出现错误,将引起你的类出现影响深远的,而且令人不快的反弹,所以保证他们正确是生死攸关的事情。本章中,我将对如何组装这些函数以成为一个好的类的中枢骨干提供一些指导。

      什么时候一个空的类将变得不空?答案是当 C++ 得到了它。如果你自己不声明一个拷贝构造函数,一个拷贝赋值运算符和一个析构函数,编译器就会为这些东西声明一个它自己的版本。而且,如果你自己连一个构造函数都没有声明,编译器就会为你声明一个缺省构造函数。所有这些函数都被声明为 public 和 inline(参见 Item 30)。作为结果,如果你写

    class Empty{};
      在本质上和你如下写是一样的:

    class Empty {
     public:
      Empty() { ... } // default constrUCtor
      Empty(const Empty& rhs) { ... } // copy constructor
      ~Empty() { ... } // destructor - see below
   

顶(0)
踩(0)

您可能还会对下面的文章感兴趣:

最新评论