Files
kernel_Notes/Zim/Programme/C++/c++备忘.txt
2012-08-08 15:17:56 +08:00

34 lines
2.6 KiB
Plaintext
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
Content-Type: text/x-zim-wiki
Wiki-Format: zim 0.4
Creation-Date: 2011-08-07T10:08:42+08:00
====== c++备忘 ======
Created Sunday 07 August 2011
===== 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++中已经可以通过引用来实现了,使用引用可以是程序的可读性更好些。
===== 6. =====
在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模拟文件结束符EOFscanf
返回EOF 所以当输入终止符ctrl+z时退出while循环。