摘要:
void的字面意思是空类型,void *的意思是空类型指针,void 不是一个真正的类型,我们在声明变量的时候从来不会像下面这样声明: void a; 如果我们写了一行这样的代码,某些编译器会直接报错,有些则不会,但也没有任何意义。 void真正的用途在下面两个方面: 对函数返回值的限定 对函数参数 阅读全文
摘要:
先考虑一种情况,对一个已知对象进行拷贝,编译系统会自动调用一种构造函数——拷贝构造函数,如果用户未定义拷贝构造函数,则会调用默认拷贝构造函数。 先看一个例子,有一个学生类,数据成员时学生的人数和名字: #include <iostream> using namespace std; class St 阅读全文
摘要:
首先, C++中的explicit关键字只能用于修饰只有一个参数的类构造函数, 它的作用是表明该构造函数是显示的, 而非隐式的, 跟它相对应的另一个关键字是implicit, 意思是隐藏的,类构造函数默认情况下即声明为implicit(隐式). 那么显示声明的构造函数和隐式声明的有什么区别呢? 我们 阅读全文
摘要:
一、概述 为了实现C++的多态,C++使用了一种动态绑定的技术。这个技术的核心是虚函数表(下文简称虚表)。本文介绍虚函数表是如何实现动态绑定的。 二、类的虚表 每个包含了虚函数的类都包含一个虚表。 我们知道,当一个类(A)继承另一个类(B)时,类A会继承类B的函数的调用权。所以如果一个基类包含了虚函 阅读全文