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 }

 

posted @ 2012-04-12 20:32  XiaoweiLiu  阅读(473)  评论(0编辑  收藏  举报