摘要:
结构与联合体是C语言中就已经存在的数据类型。C++语言对它们进行了扩展,最大的变化是允许在结构和联体中定义成员函数。 1、利用结构定义变量时,不需要带上关键字struct2、允许在struct中定义成员函数。默认访问权限为public3、在struct中没显定义任何构造函数,那可以用{}进行初始化, 阅读全文
摘要:
1、使用Qt creator IDE 2、点击文件-新建项-Application-qt widgets(部件) application 说明: QT库和QT creator (1)QT creator 仅仅是简单的IDE,可以单独下载,下载后,还需要下载QT库,进行配置.(较难) (2)也有集成Q 阅读全文
摘要:
1、定义带参数的宏: #define MacroName(MacroParamList) MacroBody; 例如:#define Max(a,b) ((a)>(b))?(a):(b) 在编译器对源程序做预处理时,会自动将宏调用展开成对应的实现代码,这个过程叫宏展开。在宏展开过程中,宏的调用参数会 阅读全文
摘要:
链式操作是利用运算符进行连续操作。它的特点是一条语句中出现两个或两个以上相同的操作符。 1、操作符重载函数一定不能够返回void类型。 2、对赋值操作符进行重载,如果返回的是类的对象,那么链式赋值操作必须借助拷贝构造函数才能进行。这样不但会有较大的运行开销,还需要编写正确的拷贝构造函数。 c3=c2 阅读全文
摘要:
1、static_cast 将一个值以符合逻辑的方式转型。这可以看做是"利用原值重建一个临时对象,并在设立初值时使用型别转换"。 唯有当上述的型别转换有所定义,整个转换才会成功。所谓的“有所定义”,可以是语言内建规则,也可以是程序员自定的转换动作。 2、dynamic_cast 将多态型别向下转型为 阅读全文
摘要:
通过explicit关键字,可以阻止“单参构造函数”自动型转换。 阅读全文
摘要:
typedef :为现有类型创建别名。 书写typedef的声明: 技巧 -如果定义一个变量的语句是合法的,那么在它前面加上typedef就一定合法,并且原来的变量名就成为了别名。 阅读全文
摘要:
volatile是C++的一个关键字,它是来解决变量在“共享”环境下容易出现读取错误的问题。 volatile 关键字是一种类型修饰符,用它声明的类型变量表示可以被某些编译器未知的因素更改,比如:操作系统、硬件或者其它线程等。遇到这个关键字声明的变量,编译器对访问该变量的代码就不再进行优化,从而可以 阅读全文