定义:
只有单个形参,该形参是对本类类型对象的引用(常用const修饰),这样的构造函数成为复制构造函数。
使用方式:
(1)显示使用----用一个同类型的对象初始化该对象时;
(2)隐式使用----将该类型的对象传递给函数或从函数返回该类型对象时。
三种类型的复制构造函数:
*bitwise copy constructor :逐位复制-----默认方式
*合成的 co...
分类:
其他好文 时间:
2014-08-24 10:19:52
阅读次数:
144
string类的构造函数:string(const char *s); //用c字符串s初始化string(int n,char c); //用n个字符c初始化此外,string类还支持默认构造函数和复制构造函数,如string s1;string s2="hello";都是正确的写法。当构造的st...
分类:
其他好文 时间:
2014-08-23 20:14:41
阅读次数:
200
#include "iostream"
using namespace std;
/*
1、带有默认构造函数的类对象成员;
2、
*/
//讨论初始化构造函数
//主要讨论在有虚函数情况下的初始化构造函数问题
//含有虚函数的类对象维护一个vptr指向类中的vtbl
class ZoolAnimal
{
public:
ZoolAnimal(){}
~ZoolAnimal(){}
vi...
分类:
其他好文 时间:
2014-08-23 16:52:21
阅读次数:
162
C++新手常有的误解:
C++新手一般有两个常见的误解:
1.任何class如果没有定义default constructor,就会被合成出一个来。
2.编译器合成出来的default constructor会显示设定“class 内每一个data member的默认值”
有四种情况,会导致“编译器必须为未声明的constructor之classes合成一个defaultco...
分类:
编程语言 时间:
2014-08-23 16:52:11
阅读次数:
253
/*
无锁内存缓冲池
其特点如下:
池内存的申请和释放不会使用锁,只会用到微耗的interlockedincrement和interlockeddecrement函数
池内存总大小和池内内存块的大小是固定长度的,通过构造函数的参数指定;
分配出来的池内存是经过memset确认的物理内存;
池大小是固定的,若池中空闲内存不足以提供所需,则池内存分配函数利用malloc...
分类:
其他好文 时间:
2014-08-23 16:52:03
阅读次数:
344
这里非常的绕口 需要仔细的来看看: destory(): 显示调用一个对象的析构函数 相当于释放一个对象需要释放的一些动态内存 为下次真正释放对象做准备 deallocate():真正的释放一个内存块。这是一个上层封装也就是delete函数的上层封装 在STL的空间配置器中 有可能会调用dele.....
分类:
编程语言 时间:
2014-08-23 16:38:51
阅读次数:
224
重载操作符与转换--自增/自减操作符引言: 自增,自减操作符常常由诸如迭代器这种类实现,这种类提供相似于指针的行为来訪问序列中的元素。比如,能够定义一个类,该类指向一个数组并为该数组中的元素提供訪问检查:class CheckedPtr{public: //这个类没有默认构造函数,必须提供指...
分类:
编程语言 时间:
2014-08-22 19:38:19
阅读次数:
371
条款26:尽可能延后变量定义式的出现时间
std::string encryptPassword(conststd::string &password)
{
std::string encrypted;
encrypted=password;
encrypt(encrypted);
return encrypted;
}
这样定义即初始化encrypted付出的代价是一个构造函数和...
分类:
编程语言 时间:
2014-08-22 17:50:39
阅读次数:
249
类和结构类是存储在堆(heap)上的引用类型,而结构是存储在栈(stack)上的值类型。结构 不支持继承类数据成员 是包含类的数据--字段、常量和事件的成员。函数成员提供了操作类中数据的某些功能,包括方法、属性、构造函数和终结器(finalizer)、运算符以及索引器ref参数 迫使值参数通过引用传...
分类:
其他好文 时间:
2014-08-22 17:48:09
阅读次数:
185
条款13:以对象管理资源
使用RAII,获得资源后立刻放进管理对象,管理对象运用析构函数确保资源被释放。
为防止资源泄露,请使用RAII对象,它们在构造函数中获得资源并在析构函数中释放资源。
两个常被使用的RAII类是tr1::shared_ptr和tr1::auto_ptr。前者通常是较佳选择,因为其拷贝行为比较直观。若选择auto_ptr,复制动作会使被复制物指向null.
条款14...
分类:
编程语言 时间:
2014-08-22 16:22:49
阅读次数:
250