每天学习一点C++之一

来源:互联网 发布:php编写软件 编辑:程序博客网 时间:2024/06/17 04:32
·文章原创,转载请说明出处,联系信箱623730587@qq.com一、c++中的bool类型
    1 c语言中要使用bool类型,必须添加头文件<stdbool.h>,而c++中不需要导入头文件。
    2 bool类型的变量可以和整数做运算。
    3 bool类型在用作判断条件的时候,千万不要出现==的运算符,这是程序界的笑话,因为bool本身就表示真假。
    4 c++中的bool类型的输出为0,或者1,如果想以true或者false的形式输出,那么得这样输出。但是有些机器不识       别这种写法。例如:
            bool a = false ;
            cout << boolalpha << a << endl;二、c++中的符号替换(最好少用,因为这是为了照顾欧洲一些国家的键盘提出来的,这里只列出三条)    1 c语言中表达逻辑与用&&,c++中还可以用and来替换。    2 c语言中表达逻辑或用||,c++中还可以用or来替换。    3 c语言中的位与(&),C++中还可以用bitand。三、c++中的函数重载    1 在同一作用域中,函数名相同,参数列表不同的函数构成重载。比如,在同一作用域里面有如下函数              show(int a);              show(double b);              show(int a , double b);              show(double b, int a);         以上函数均构成重载。     2 c++之所以提出重载的概念,其作用有二,方便函数调用和减少函数名的个数。这种作用看似不起眼,        但是在实际开发中却有着巨大的作用。     3 重载之所以在c++能够实现,是因为编译器在编译的时候,会综合参数列表来生成函数名,所以才会生成不        同的函数名,所以在最终调用的时候,调用的是不同的函数。而c语言的编译器不会考虑参数列表,如函数重名,        则报错。在linux环境下,可以使用g++ -c 的方式生成.o文件,用nm命令查看.o文件,就可以发现其中的函数名综        合了参数列表类型的首字母。或者使用gcc -S的命令生成汇编查看,都可看到生成的函数名。      4 函数指针的概念,有如下函数             double  add(double x,double y);              去掉函数名,就是函数的类型,即函数add的类型为 double  (double x,double y);变量也是一样,可以类比              要定义函数的指针,自然要用函数的类型加上指针运算符,和函数指针名即可,即             double (*padd)(double x,double y);       5 函数重载引入的问题             由于c++程序也可能调用c函数,但是c++生成的函数名还综合了参数列表的信息,而c语言编译生成的函数名             并不包含参数列表信息,那就造成了跨编译器调用的问题。四、下篇详解跨编译器的问题。           
0 0
原创粉丝点击