C++中typedef的使用和类型安全
关于typedef
传统的typedef
机制允许对已存在的type提供synonym或者alias,我们把这种的传统的typedef
(包括c++11中的alias声明)描述为“透明类型机制”:这种声明引入了新的类型名称,但不是新的类型。被定义为新引入的alias的类型与被定义为原来类型的变量,完全一样,不会有一丁点行为上的差别。
typedef
传统的typedef
机制允许对已存在的type提供synonym或者alias,我们把这种的传统的typedef
(包括c++11中的alias声明)描述为“透明类型机制”:这种声明引入了新的类型名称,但不是新的类型。被定义为新引入的alias的类型与被定义为原来类型的变量,完全一样,不会有一丁点行为上的差别。
用倦Thindpad T420自带的键盘,也想尝试一下机械键盘的手感如何,就入手了一个机械键盘,KBC Poker 2。
入手Poker 2的原因不仅仅是Filco Minila Air和HHKB的价格有点高,还有一点吸引我的原因就是Poker 2支持全键位硬件可编程。
基类中类型相关的函数与派生类不做改变直接继承的函数是不同的,当希望派生类定义合适自身的版本,此时基类就将这些函数声明为虚函数。
基类通常都应该定义一个虚析构函数,即使该函数不执行任何实际操作。
重载的运算符是具有特殊名字的函数,除函数调用运算符外,其他重载运算符不能含有默认实参。
&&
,||
和,
,两个运算对象总是会被求值。&&
,||
,&
和,
,运算符。=
,[]
,()
和->
运算符**必须是成员。
拷贝构造函数的第一个参数必须是一个引用类型,且几乎总是一个const引用。由于拷贝构造函数在多个情况下会被隐式使用,因此不能是explict的。
静态内存:存储局部static对象、类static数据成员和定义在函数之外的变量。 static对象:使用之前分配,程序结束时销毁。
栈内存:保存定义在函数内部的非static对象。 栈对象:仅在定义的程序块运行时才存在。