C++ Primer 学习笔记 2012.4.5
当初[一年半前]看C++ Primer时有点儿早,很多书上的东西都看不懂,看的收获太少了,现在就感觉好多了,感觉收获了不少!!!
@1:
cl -GX prog.cpp
cl是调用编译器的命令,-GX是一个选项,该选项在使用命令行界面编译程序时时必需的,微软编译器自动产生与源文件同名的可执行文件,这个可执行文件具有.exe后缀且与源文件同名。本例为prog.exe
@2:
\123 : 只要是 \后面接数字,则数字就是八进制的,当后面接的数字个数少于等于三个时,则此字符(\123)表示八进制数字表示的字符;但当数字的个数多于三个时则前三个表示字符,后面的数字就是普通的字符串
\x123 : 与上面的类似,但是用十六进制数字表示字符,而且对数字的个数没有限制,但如果数字太大的话,编译器会提示数字太大了(不能代表有效字符,编译出错)
@3:
C++ 支持两种出事话变量的形式:复制初始化和直接初始化,复制初始化语法用等号(=),直接初始化把初始化式放在括号中:
int ival(1024); //直接初始化
int inval = 1024; //复制初始化
初始化不是赋值;
使用=来初始化变量使得许多C++编程新手感到迷惑,他们很容易把初始化当成是赋值的一种形式。但在C++中初始化和赋值是两种不同的操作。这个概念特别容易误导人。直接初始化语法更加灵活且效率更高。
@4:
字符常量中不能有换行符。若用换行符则用 \n
静态变量是属于定义该变量的类的,而不是对象的。由于这个原因,静态变量不能实现多态,因为多态是针对对象而言的,而静态变量是属于类的,而不是属于某一个对象。
@5:
View Code
1 #include <iostream> 2 3 #include <string> //是这个头文件 4 5 using namespace std; 6 7 8 9 int main(){ 10 11 string str1 = "Hello"; //复制初始化 12 13 string str2("World!"); //直接初始化 14 15 string str3(10, 'a'); //10 个a 组成的字符串 16 17 //可以用"同一个定义中"前面已定义变量的值初始化后面的变量 18 19 //同一个定义中的可以,那么不是同一个定义中的更可以了 20 21 double salary = 999.99, wage(salary + 10); 22 23 string str4 = "C++ Primer 4th Ed", 24 25 str5(str4 + " !"); 26 27 cout << str1 << "\t" << str2 << "\t" << str3 << endl; 28 29 cout << salary << "\t" << wage << endl; 30 31 cout << str4 << str5 << endl; 32 33 return 0; 34 35 }