01 2013 档案
摘要:如果想让你的类定义出来的对象是独一无二的,即对象无法被复制,或者使用赋值操作符赋给另外一个对象,那么最好的方法就是禁用拷贝构造函数和赋值操作符。下面介绍几种禁用的方法。(方法来自Effective C++,如果想禁用类的其他函数,方法类似)1. 定义为private且不实现它2. 继承Uncopyable类3. C++0x中的新方法1. 定义为private且不实现它我们知道,拷贝构造函数和赋值操作符重载函数,即使不定义,编译器也会生成一个默认的函数。但是如果定义了,class还是会支持这两个函数。那么应该怎么去禁用它们呢?在C++中,如果不想让对象调用某个方法,那么可以将这个方法声明为pri
阅读全文
摘要:在C++中当创建一个空类时,C++就会默认的为这个类创建4个函数:默认的构造函数、析构函数、拷贝构造函数、以及赋值操作符。本文参考Effective C++介绍这几个函数。目录:1. 函数的原型以及创建函数的时机2.赋值操作符存在的问题3. C++0x的新变化1. 函数的原型以及函数创建的时机C++中创建一个空类:class Empty {};默认会生成4个函数,其函数的原型如下:public: Empty() { ... } Empty(const Empty& rhs) { ... } ~Empty() { ... } Empty& operator=(cons...
阅读全文
摘要:C++中的默认值在C++中,编译器不会默认检查对象是否被初始化,这就会导致对象在不初始化的情况下被使用,造成不可预计的后果。因此,C++程序员必须保证自己所使用的变量已经有了一个明确的初始值。一般情况下,在C++中,如果一个变量为全局代码段,则一般编译器会给一个初始的定值,如int类型会赋0。而定义为局部变量时,则默认值为随机数。但是在vs调试时,DEBUG版本和Release版本版本还有区别:http://www.dewen.org/q/8450/C%2B%2B+%E4%B8%AD+bool+%E5%8F%98%E9%87%8F%E7%9A%84%E9%BB%98%E8%AE%A4%E5%8
阅读全文

浙公网安备 33010602011771号