由于并非所有的对象都会使用拷贝构造函数和赋值函数,程序员可能对这两个函数有些轻视。但是若类中含有指针变量,那么这两个缺省的函数就隐含了错误。下面通过实现一个字符串类MyString来说明问题:// 普通构造函数的声明MyString(const char *str = NULL);
构造函数有个特殊的初始化方式叫“
每一个类只有一个
构造从类层次的最根处开始,在每一层中,首先调用基类的构造函数,然后调用成员对象的构造函数。析构则严格按照与构造相反的次序执行,该次序是唯一的,否则编译器将无法自动执行析构过程。一个有趣的现象是, 成员对象初始化的次序完全不受它们在初始化表中次序的影响,只由成员对象在类中声明的次序决定。这是因为类的声明是唯一的,而类的构造函数可以有多个,因此会有多个不同次序的初始化表。如果成员对
Copyright © 2005-2024 51CTO.COM 版权所有 京ICP证060544号