- 博客(6)
- 资源 (5)
- 收藏
- 关注
原创 Effective C++ 07:为多态基类声明virtual析构函数
先上结论: 1、带有多态性质的基类,应该声明一个 virtual 析构函数。如果类带有任何 virtual 函数,它就应该有一个 virtual 析构函数。 2、类的设计目的如果不是作为 base class 使用,或不是为了具备多态性,就不该声明 virtual 析构函数。举一个工厂模式的例子:class Tim
2016-03-01 21:27:47 236
原创 Effective C++ 06:若不想使用编译器自动生成的函数,就该明确拒绝
条款05告诉我们,编译器会默认生成的一些函数:copy构造函数、copy assignment操作符和析构函数,如果你没有声明构造函数,编译器也会帮你声明一个default构造函数。 如果你不想使用这些默认的函数,你必须自行声明它们,如果你不希望这些函数被调用(主要是copy函数)那么最好将它们声明为private,并且不予实现。
2016-02-16 17:30:27 272
原创 Effective C++ 05:了解C++默默编写并调用哪些函数
什么时候empty class不再是个empty class呢?当C++处理过它之后。如果你没有声明,编译器会为它声明一个copy构造函数、一个copy assignment操作符和一个析构函数,如果你没有声明构造函数,编译器也会帮你声明一个default构造函数
2016-02-03 13:28:38 199
原创 Effective C++ 04:确定对象被使用前已先被初始化
C++的对象在声明的时候是无初值的,为了避免在对象初始化之前过早的使用它们,你需要做三件事情: 第一,手工初始化内置类型的变量。 第二,使用成员初始化列表来初始化自定义类的对象的所有成分。 第三,在“初始化次序不确定性”氛围下加强你的设计。 首先,不要混淆了赋值和初始化,举一个例子
2016-01-31 18:34:30 329
原创 Effective C++ 03:尽可能使用const
const允许你指定一个语义约束,而编译器会强制执行这项约束,确保某个对象不会被改变。 如果某个对象在执行中不应该(或者不会)被改变,就应该使用const。 const的作用以及用法整理如下:一、const修饰变量#includeusing namespace std;int main() { int a=1;
2016-01-21 20:34:30 312
转载 extern “C”的用法解析
extern "C"的用法解析1.引言 C++语言的创建初衷是“a better C”,但是这并不意味着C++中类似C语言的全局变量和函数所采用的编译和连接方式与C语言完全相同。作为一种欲与C兼容的语言,C++保留了一部分过程式语言的特点(被世人称为“不彻底地面向对象”),因而它可以定义不属于任何类的全局变量和函数。但是,C++毕竟是一种面向对象的程序设计语言,为了支持函数的
2015-05-01 14:45:06 222
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人