每天学习一点C++之一

·文章原创,转载请说明出处,联系信箱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
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值