八月 4th, 2010 @ 3:50 下午 

今天给自己定的读书任务也算完成了,C++ Primer 第二章,记的东西都是自己以前不太会或者不知道的东西,而且学习了两章之后发现要记的东西越来越多了。。

1.有一种数据类型是wchar_t

有一种wchar_t(宽字符型,16位)数据类型,用于存储扩展字符集,比如汉语和日语。

2.int和long的区别取决于系统

在32位机器上int和long类型通常字长是相同的。

3.“长值”赋给“短值”的方法

将“长”的数据类型赋值给“短”的数据类型,会对其求模后再赋值。(例如:int型赋给char型)

4.数值常量的几种表达方式

1
2
3
4
5
6
7
20  /*decimal(十进制)*/
024 /*octal(八进制)*/
0x14    /*hexadecimal(十六进制)*/
128u    /*unsigned*/
1L  /*long*/
1024UL  /*unsigned long*/
8Lu /*unsigned long*/

5.char类型转换为wchar_t类型的方法

1
2
'a' /*char*/
L'a'    /*wchar_t*/

6.转义字符集合

换行浮       \n  水平制表符 \t
纵向制表符 \v  退格符       \b
回车符       \r  进纸符       \f
报警符       \a  反斜线       \\
疑问号       \?  单引号       \'
双引号       \"

\ooo    ooo表示三个八进制数字,这三个数字表示字符的数字值。相应的值可以对应相应的字符。
如:
\7  (响铃符) \12 (换行符)
\0  (空字符) \062    (’2‘)

7.C++中所有的字符串字面值都由编译器自动在末尾添加一个空字符。

‘A’表示字符A,”A”表示两个字符的字符串。L’A'、L”A”同理。

8.字符串字面值可以连接

两个相邻的仅由空格、制表符或换行符分开的字符串字面值(或宽字符串字面值),可连接成一个新字符串字面值。这使得多行书写字面值字符串变得简单:

1
2
3
4
std::cout << "a multi-line "
         "string literal "
         "using concatenation"
      << std::endl;

执行结果:

1
a multi-line string literal using concatenation

9.变量的初始化

1
2
int vial(1024); //direct-initialization(直接初始化),注:相比复制初始化语法更灵活,效率更高。
int vial = 1024;    //copy-initialization(复制初始化),注:这是初始化的一种方法,并不是一个赋值操作。

ps:定义的变量本身也是个类的对象。

10.再次强调声明变量后应该初始化

如果不初始化,“段错误”是小事,如果把未初始化的错误的值当作正确值来处理,会导致结果运算错误。

11.声明和定义

定义:definiton,用于为变量分配存储空间。同一个程序中变量有且仅有一个定义。
声明:用于向程序表明变量和名字。extern用于声明而不定义一个变量。声明可以多次,定义只能有一次。

12.引用就是对象的另一个名字

例:

1
2
int ival = 1024
int &refval = ival;

13.typedef

用来定义类型的同义词。

使用typedef的目的有三个:
1.隐藏特定类型的实现,强调使用类型的目的。
2.简化复杂的类型定义,使其更易理解。
3.允许一种类型用于多个目的,用时使得每次使用该类型的目的明确。

14.枚举

例:

1
2
3
enum open_modes {input, output, append};//input = 0, output = 1, append =2
enum Forms {shape = 1, sphere, cylinder, polygon};//shape = 1, sphere = 2, cylinder = 3, polygon = 4
enum Points { point2d = 2, point2w, point3d = 3, point3w };//point2d = 2, point2w = 3, point3d = 3, point3w = 4

不能改变枚举的值,他本身就是一个常量表达式。

每个枚举都定义一种唯一的类型。

1
2
3
4
Points pt3d = point3d;//ok
Points pt2w = 3;//error
pt2w = polygon;//error
pt2w = pt3d;//ok

15.c++中struct和class是同一个东西

唯一不同的地方是默认的初始访问级别,class默认位private,struct为public。

16.头文件中应只有声明,不该有定义

有三个例外,头文件可以定义类、值在编译时就已知道的const对象和inline函数。

17.头文件应避免重复包含

1
2
3
4
5
6
7
8
#ifdef MYCLASS_H
#define MYCLASS_H
//头文件中内容
class MyClass
{

};
#endif
作者: Sunny
原创文章: 转载请注明出自 Sunny Way.
最后编辑: 十月 22nd, 2010 @ 02:55 下午
Email永久链接
Tags


 

这篇日志的回复 » (没有回复)

 
发表回复

提示: 您可以使用以下标签: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Tags
Comment Meta:
回复RSS
引用URI


 最近 50 篇日志
 后退
切换主题...
  • 访问 » 8663
  • 日志 » 59
  • 回复 » 77
切换主题...
  • VoidVoid
  • LifeLife
  • EarthEarth
  • WindWind « Default
  • WaterWater
  • FireFire
  • LightLight

留言板



    No Child Pages.