1、bool型变量
a)一个字节变量(和char一样的大小)
b)缺省值为true或者false
2、引用型变量
a)让新申请的变量挂在原有类型变量的内存地址上
b)引用型变量必须初始化,引用型变量必须挂在一个现有的同类型变量上
c)引用型变量的地址与来源变量的地址一定是在同一个内存地址上
d)引用的优点是书写更加流畅,使代码的逻辑更加清晰
e)引用变量与来源变量任何一个数值发生变化则另外一个一定发生变化
f )引用型变量做参数,经常是用来代替来源变量赋值或者取值(相当于替身的作用)
g)引用型变量的原理实际上就是指针变量
3、命名空间
a)当工程代码量庞大时,由大量程序员编写的代码出现了重名函数,重名全局变量
b)使用using namespace std;语句在每处调用空间内的函数不用加域名控制
例如:std::cout<
4、c++输入和输出
a)推荐使用#include <iostream> using namespace std;
,不推荐使用#include <iostream.h>
b)cout和cin代替代替printf和scanf功能更强,自动识别输入输出类型(不需要指定%s和%d等等)
5、重载函数
a)重载函数:函数名字相同但是参数列表不同(类型和个数不完全相同),c++支持,但是c不支持
6、申请堆空间
a)new和delete代替了malloc和free,使书写更加流畅,尤其申请堆内数组更加直观
例如:
// STest *p = (STest*)malloc(sizeof(STest));
STest *p = new STest;
//free(p);
delete(p);
//int *p1 = (int*)malloc(sizeof(int)*5);
int *p1 = new int[5];
delete []p1;//不推荐删除数组时使用:delete p1;
注意new的错误用写法:int *p1 = new int(5);
7、C++由结构体struct升级为class
结构体或者类内不但支持成员变量,还支持成员函数,是一个更为严重的障眼法,任何一个类的成员内部都隐藏存在一个指针this
8、内联函数
a)内联扩展是用来消除函数调用时的时间开销。它通常用于频繁执行的函数。一个小内存空间的函数非常受益。如果没有内联函数,编译器可以决定哪些函数内联。程序员很少或者没有控制哪些函数是内联,哪些不是。给这种控制程度,作用是程序员可以选择内联的特定应用
b)内联函数inline
代替:C语言的宏定义函数,实际上也是C++的障眼法之一
编译时仍然按照宏定义函数一样出来的
9、成员函数
a)当一部分函数与某一个结构体(类)的成员变量运算关系非常紧密,C++把这样的函数划分到这个类的内部,叫做成员函数
b)成员函数内必须有个本结构体(类)的指针变量this
,这个指针变量指向那个结构体(类)的对象,这个函数就将操作那个结构体(类)内的成员变量
c)最终达到的效果就是一个类不仅有成员变量(属性),而且还有一些相关的行为功能