C++Primer第五版 第二章习题答案(31~41)
2016-11-20 09:46
281 查看
2.31
知识点:顶层const的拷贝不受限制,但是底层const的拷贝的对象必须具有相同的底层const资格。一般来说:非常量可以赋值给常量,反之则不行
答案:
a:合法;
b:不合法,p1是非常量,p2是常量,不能进行赋值操作;
c:合法;
d:不合法,p3既是底层也是顶层const,所以都得考虑到;
e:合法;
2.32
指向空的指针可以用nullptr或0带代替
所以该式可表达为:*p = nullptr;
2.33
知识点一:使用类型别名:C++中可以定义一个类型的别名,有两种方式
1:使用typedef
2:使用别名名称
知识点二:auto 类型说明符:当我们不知道变量表达式的类型时,可以使用auto让编译器为我们决定表达式的类型
知识点三:auto会自动忽略掉顶层const,而底层const会被保留。
知识点四:auto定义的变量必须有初始值。
答案:
a = 42;
b = 42;
c = 42;
e:error;
f:error;
g:error;
2.34
自行理解上一题的各个知识点。
2.35
第一个auto j 类型为int
第二个auto &k 类型为const int &
第三个auto *p类型为const int *
第四个auto j2类型为const int
第五个auto &k2 类型为const int&
2.36
知识点:decltype:希望从表达式的类型推断出想要定义的变量的类型,该操作返回操作数的类型。
decltype(())双层括号表示引用(注意引用必须初始化)
a是int类型 4
b是int类型 4
c是int类型 4
d是int &类型 4
全是4!!!!!!!!!!!
2.37
知识点:赋值的表达式语句本身是一种引用:
a int 3;
b int 4;
c int 3;
d int & 3;
2.38
主要的区别有两点:
1:如果使用引用类型,auto会识别为其所指对象的类型,decltype则会识别为引用的类型。
2:decltype(())双括号的差别。
2.39
很简单,报错呗~
[Error] expected ';' after struct definition
2.40
随便写,可以定义书的类型,价格,数量.........
2.41 2.42
发挥自己的想象力吧~~
知识点:顶层const的拷贝不受限制,但是底层const的拷贝的对象必须具有相同的底层const资格。一般来说:非常量可以赋值给常量,反之则不行
答案:
a:合法;
b:不合法,p1是非常量,p2是常量,不能进行赋值操作;
c:合法;
d:不合法,p3既是底层也是顶层const,所以都得考虑到;
e:合法;
2.32
指向空的指针可以用nullptr或0带代替
所以该式可表达为:*p = nullptr;
2.33
知识点一:使用类型别名:C++中可以定义一个类型的别名,有两种方式
1:使用typedef
typedef double wages; //wages就成为了double的别名 typedef wages base ,*p; //base 成了double的别名(同义词),p成了double *的同义词(double类型的指针)
2:使用别名名称
using SI = Sales_item; // SI 成为了Sales_item的别名
知识点二:auto 类型说明符:当我们不知道变量表达式的类型时,可以使用auto让编译器为我们决定表达式的类型
auto a = b+c; //编译器会为我们判别类型 auto a = 0, b = 3.14; //错误,auto语句中的类型必须一致。
知识点三:auto会自动忽略掉顶层const,而底层const会被保留。
知识点四:auto定义的变量必须有初始值。
答案:
a = 42;
b = 42;
c = 42;
e:error;
f:error;
g:error;
2.34
自行理解上一题的各个知识点。
2.35
第一个auto j 类型为int
第二个auto &k 类型为const int &
第三个auto *p类型为const int *
第四个auto j2类型为const int
第五个auto &k2 类型为const int&
2.36
知识点:decltype:希望从表达式的类型推断出想要定义的变量的类型,该操作返回操作数的类型。
decltype(f) sum = s; //sum的类型就是f的返回类型
decltype(())双层括号表示引用(注意引用必须初始化)
a是int类型 4
b是int类型 4
c是int类型 4
d是int &类型 4
全是4!!!!!!!!!!!
2.37
知识点:赋值的表达式语句本身是一种引用:
a int 3;
b int 4;
c int 3;
d int & 3;
2.38
主要的区别有两点:
1:如果使用引用类型,auto会识别为其所指对象的类型,decltype则会识别为引用的类型。
2:decltype(())双括号的差别。
int i = 0, &r = i; // same auto a = i; decltype(i) b = i; // different auto c = r; decltype(r) d = i;
2.39
很简单,报错呗~
[Error] expected ';' after struct definition
2.40
随便写,可以定义书的类型,价格,数量.........
2.41 2.42
发挥自己的想象力吧~~
相关文章推荐
- C++Primer第五版 第十六章习题答案(41~50)
- C++Primer第五版 第四章习题答案(31~38)
- C++Primer第五版 第十二章习题答案(31~33)
- C++Primer第五版 第七章习题答案(41~50)
- C++Primer第五版 第九章习题答案(31~40)
- C++Primer第五版 第九章习题答案(41~50)
- C++Primer第五版 第十五章习题答案(31~40)
- C++Primer第五版 第二章习题答案(1~10)
- C++Primer第五版 第七章习题答案(31~40)
- C++Primer第五版 第十章习题答案(41~42)
- C++Primer第五版 第十五章习题答案(41~42)
- C++Primer第五版 第十三章习题答案(31~40)
- C++Primer第五版 第十三章习题答案(41~50)
- C++Primer第五版 第三章习题答案(41~45)
- C++Primer 中文版 第五版 第二章课后习题答案
- C++Primer第五版 第六章习题答案(31~40)
- C++Primer第五版 第六章习题答案(41~50)
- C++Primer第五版 第十六章习题答案(31~40)
- C++Primer第五版 第二章习题答案(21~30)
- C++Primer第五版 第三章习题答案(31~40)