题目:用c++实现一个不能被继承的类题解分析:常规解法:首先想到的是在C++ 中,子类的构造函数会自动调用父类的构造函数。同样,子类的析构函数也会自动调用父类的析构函数。要想一个类不能被继承,我们只要把它的构造函数和析构函数都定义为私有函数。那么当一个类试图从它那继承的时候,必然会由于试图调用构造函...
分类:
编程语言 时间:
2014-07-10 00:20:08
阅读次数:
357
class Test { public: Test() : n2(0), n1(n2 + 2) { } private: int n1; int n2;};调用构造函数之后,n1个n2各为多少?分析:构造函数的初始化顺序仅仅取决于成员变量的声明顺...
分类:
其他好文 时间:
2014-07-07 23:45:23
阅读次数:
196
这个条款应该和第五个放在一起编译器默认生成1 无参构造函数,2 析构函数3 拷贝构造函数4 赋值预算符当我们不需要,就要显示的告诉大家我们不需要。方法:自己声明这个函数为private,单不要定义它。原因:1 自己声明这个函数,编译器就不会为我们生成这个函数 2 声明成private,就不会被...
分类:
编程语言 时间:
2014-07-07 13:33:21
阅读次数:
232
这似乎很明显。如果base class的destructor不是virtual,当其derived class作为基类使用,析构的时候derived class的数据成员将不会被销毁。举个例子 我们有个交通工具的类作为基类, 它的析构函数不是virtualclass transportTool{ ....
分类:
编程语言 时间:
2014-07-01 10:27:30
阅读次数:
192
看下面的这段代码,问 print调用的是基类还是派生类的版本?
{CSDN:CODE:410156}
答案是 基类。。。
可能大家会很惊讶,print不是virtual function 吗?为什么不是调用派生类的版本呢?
首先,当定义一个派生类的对象的时候,由于 base class 构造函数的执行更早于 derived class
构造函数,所以当 base cl...
分类:
其他好文 时间:
2014-06-30 00:48:35
阅读次数:
267
类和结构体有很多共性: 定义属性存储数据 定义方法执行功能处理 定义下标,通过下标访问他们的值 初始化他们的状态 通过扩展(Extension)扩展其功能 遵守协议(Protocol),协议提供一种特定的标准功能类比结构体多出的功能: 能够继承另外一个类 能够核对运行期对象的类型 析构对象释放资源 ...
分类:
其他好文 时间:
2014-06-28 09:36:16
阅读次数:
210
本例只是对含有本类对象指针的类的构造函数、析构函数、拷贝构造函数、复制运算符使用方法的一个简单示例,以加深对构造函数和拷贝控制成员的理解。
读C++ primer 5th 第13章后加上自己的理解,完整的写了下课后习题的代码。
第一版:
#include
#include
using namespace std;
class TreeNode{
private:
stri...
分类:
编程语言 时间:
2014-06-28 07:13:13
阅读次数:
296
对于结构 1)可以有方法与属性2)是密封的,不能被继承,或继承其他结构3)结构隐式地继承自System.ValueType4)结构有默认的无参数构造函数,可以将每个字段初始化为默认值,但这个默认的构造函数不能被替换,即使重载了带参数的构造函数5)结构没有析构函数6)除了const成员外,结构的字段不...
分类:
其他好文 时间:
2014-06-27 20:47:05
阅读次数:
217
类和结构体有很多共性: 定义属性存储数据 定义方法执行功能处理 定义下标,通过下标访问他们的值 初始化他们的状态 通过扩展(Extension)扩展其功能 遵守协议(Protocol),协议提供一种特定的标准功能类比结构体多出的功能: 能够继承另外一个类 能够核对运行期对象的类型 析构对象释放资源 引用计数允许一个类实例有多个引用 类和...
分类:
其他好文 时间:
2014-06-27 10:40:04
阅读次数:
159
简介
内存管理一直是 C++ 一个比较繁琐的问题,而智能指针却可以很好的解决这个问题,在初始化时就已经预定了删除,排解了后顾之忧。1998年修订的第一版C++标准只提供了一种智能指针:std::auto_ptr(现以废弃),它基本上就像是个普通的指针:通过地址来访问一个动态分配的对象。std::auto_ptr之所以被看作是智能指针,是因为它会在析构的时候调用delete操作符来自动释放所包...
分类:
其他好文 时间:
2014-06-26 12:07:31
阅读次数:
328