bool:
C++是支持原生bool的!
在C语言中,我们使用bool类型,必须用到stdbool.h文件,他是使用宏的方式定义了true和false,这并非原始bool,是使用替代品代替的。
C++中的bool才符合真正bool的意义,0为false,非0为true!原生bool是小写的bool,bool有很多种!宏定义都是int类型的。
BOOL(也非原生bool),_Bool(C98标准后加上的,等同于bool),等。bool是原生的(0和非0),其他的都是通过0和1来实现的!建议一直使用bool,只有bool这是最安全的!
头文件的三种标准:
预编译头:
建立文件的时候改为cpp格式,这样,软件会调用C++的编译器来编译。
新建工程的时候,如果没点击空项目,VS默认会加上stdafx.h和stdafx.c,预编译头。他是VC所特有的,即windows下所特有的(给链接器使用)!可以没有他,以后建立工程就选空项目,预编译头是想给你提供便利,但一般是我们不需要的,也是不被C++标准承认的!
域作用符:::
eg:
int num = 100;
int main()
{
int num = 10;
int sum = num+::num;}
new&delete:
C语言中,如果在堆上面来操作的时候,使用的是两个函数:malloc/free,C++中添加了new/delete。
eg:
int main()
{
int *pNum = new int(100);//分配一个int类型,并将其值设置成100.
std::cout<<*pNum;
int *pArray = new int[10];//new数组
delete pNum;
delete[] pArray;
return 0;}
new/delete是一个运算符,不是一个函数
Overloaded:
重载:
命名粉碎后,在自己的工程下调用没问题,但别人调用的时候就不知道具体的函数名,可用加上extern "C",不让其命名粉碎,以C语言的编译方式编译。
两个函数完全一样,但返回值不同的时候,不可以构成重载!重载只与函数名和参数有关,实际的还会加上类,命名空间等信息进去,以后会讲,这里不深究!