c++备忘

  1. C++通过引进四个新的类型转换操作符克服了C风格类型转换的缺点,这四个操作符是,   static_cast,   const_cast,   dynamic_cast,   和reinterpret_cast。例如,假设你想把一个int转换成double,以便让包含int类型变量的表达式产生出浮点数值的结果。如果用C风格的类型转换,你能这样写: 
    int   firstNumber,   secondNumber; 
    double   result   =   ((double)firstNumber)/secondNumber; 
    如果用上述新的类型转换方法,你应该这样写: 
    double   result   =   static_cast <double> (firstNumber)/secondNumber; 
  2. 函数参数的传递分为值传递和引用传递,引用时一种特殊类型的变量,可以认为是变量的另一个别名,声明一个引用时必须对它初始化,一旦引用被初始化后,就不能在指向其他对象了。例如,int i,j; int &r = i; j = 10 ; r = j; // 相当于i=j;
  3. 内联函数不是在调用时发生控制转移,而是在编译时将函数体嵌入到每一个调用处,这样就节省了参数传递、控制转移等开销。例如,inline double cal(){}
  4. C语言只有结构体而没有类,C语言的结构体只允许定义数据成员,不允许定义函数成员,而且C语言没有访问控制属性的概念,结构体的全部数据成员是公有的。C++为C语言的结构体引入了成员函数、访问权限控制、继承、包含多态等面向对象的特性。C++把class作为定义抽象数据类型的首选关键字,并保留struct关键字。
  5. C语言中用指针作为函数参数,可以在减少函数调用数据时的开销的前提下共享数据。在C++中已经可以通过引用来实现了,使用引用可以是程序的可读性更好些。
      在C语言中可以用#define来定义带参数宏,以实现简单的函数计算,提高程序的运行效率,但是在C++中这一功能已内联函数所取                          代。scanf("%d%d",&a,&b)==2;scanf("%d%d",&a,&b)!=EOF;C语言中,EOF常被作为文件结束的标志。还有很多文件处理函数处错误后的返回值也是EOF,因此常被
来判断调用一个函数是否成功。scanf("%d %d",&a,&b)返回输入的数据和格式字符串中匹配次数,当dos或windows中输入ctrl+z(模拟文件结束符EOF)时,scanf
返回EOF 所以当输入终止符ctrl+z时,退出while循环。
posted @ 2011-04-16 00:05  左手写诗  阅读(243)  评论(0编辑  收藏  举报