c++primer4 Chapter2变量和基本类型2.4、2.5、2.6、2.7、2.8、2.9

2.4 const限定符

const对象默认为文件的局部变量,此变量只存在于那个文件中,不能被其他文件访问。通过指定const变量为extern,就可以在整个程序中访问const对象。

Exercise2.22

设置一个const变量代替循环上界100

Exercise2.23

第一个不合法,const变量必须初始化。

第二个合法。第三个不合法,改变了const变量的值。

2.5 引用

非const引用只能绑定到与该引用同类型的对象,const引用则可以绑定到不同但相关的类型的对象或绑定到右值。

Exercise2.24

(b)非法,非const引用必须用同类型的对象初始化,不能用右值初始化。可改正为int &rvall=ival;

Exercise2.25

(d)非法,rval3是const引用,不能进行赋值。

(a)将double型字面值赋给int型变量ival,发生隐式类型转换,ival值得到的值为3.

(b)将int值1赋给变量ival。

(c)将int值1赋给变量ival。

Exercise2.26

(a)定义ival为int变量,并初始化为0,;定义ri为const引用,并绑定到右值0。

(b)将0赋给变量ival;试图对ri赋值,这是非法的,因为ri是const引用,不能赋值。

Exercise2.27

10 10

 2.6 typedef名字

2.7 枚举

枚举成员是常量,每个enum都定义一种唯一的类型,枚举类型的对象的初始化或赋值,只能通过其枚举成员或同一枚举类型的其他对象来进行。

2.8类类型

Exercise2.30

电话号码:

class Tel_number {

public:

private:

string country_number;

string city_number;

string phone_number;

};

地址:

class Address {

public:

private:

string country;

string city;

string street;

string number;

};

员工:

class Employee {

public:

private:

string name;

string ID;

char sex;

Address addr;

Tel_number tel;

};

公司:

class Company {

public:

private:

string name;

Address addr;

Tel_number tel;

};

某大学的学生:

class Stu {

public:

private:

string name;

string ID;

char sex;

string dept;//所在系

string major;

Address addr;

Tel_number tel;

};

2.9 编写自己的头文件

Exercise2.31

(a)定义;(b)定义;(c)声明;(d)声明,声明了一个const引用。

Exercise2.32

(a)(c)(d)应放在源文件中,因为(a)(c)变量定义,(d)中的const变量sq2没有用常量表达式初始化,也应该放在源文件中;(b)中的const变量pi是用常量表达式初始化的,应该放在头文件中。

posted @ 2015-05-09 21:33  四月是你的宫园薰  阅读(99)  评论(0编辑  收藏  举报