C++ Primer 第五版 中文版 练习 13.14&13.15&14.16&14.17 个人code
2014-10-05 10:42
519 查看
C++ Primer 第五版 中文版 练习 13.14&13.15&14.16&14.17
练习 13.14:假定numbered是一个类,它有一个默认构造函数,能为每个对象生成一个唯一的序号,保存在名为mysn的数据成员中。
假定numbered使用合成拷贝控制成员,并给定如下函数:
void f(numbered s) { std::cout << s.mysn << std::endl; }
则下面代码输出什么内容??
numbered a,b=a,c=b;
f(a);f(b);f(c);
答:输出一样的内容,都为a对象的mysn的值。
练习 13.15:假定numbered定义一个拷贝构造函数,能生成一个新的序号。
这会改变上题中调用的输出结果吗?如果会改变,为什么?新的输出结果是什么?
答:不会改变输出结果,输出一样的内容,都为对象的mysn的值。
练习13.16:如果f中的参数是const numbered &,将会怎样?这会改变输出结果吗?如果会改变,为什么?新的输出结果是什么?
答:不会改变输出结果。
练习 13.17:分别编写前三题中所描述的 numbered 和 f ,验证你是否正确预测了输出结果。
答:
练习 13.14:假定numbered是一个类,它有一个默认构造函数,能为每个对象生成一个唯一的序号,保存在名为mysn的数据成员中。
假定numbered使用合成拷贝控制成员,并给定如下函数:
void f(numbered s) { std::cout << s.mysn << std::endl; }
则下面代码输出什么内容??
numbered a,b=a,c=b;
f(a);f(b);f(c);
答:输出一样的内容,都为a对象的mysn的值。
练习 13.15:假定numbered定义一个拷贝构造函数,能生成一个新的序号。
这会改变上题中调用的输出结果吗?如果会改变,为什么?新的输出结果是什么?
答:不会改变输出结果,输出一样的内容,都为对象的mysn的值。
练习13.16:如果f中的参数是const numbered &,将会怎样?这会改变输出结果吗?如果会改变,为什么?新的输出结果是什么?
答:不会改变输出结果。
练习 13.17:分别编写前三题中所描述的 numbered 和 f ,验证你是否正确预测了输出结果。
答:
#include <iostream> #include <algorithm> class numbered { public: //练习 13.14假设这就是默认构造函数……用rand来生成唯一的序号。预测输出结果是一样的都是a的mysn值 numbered():mysn(rand()){} //拷贝构造函数,练习 13.15 这上依然不会改变输出结果,一样的都是a的mysn值 numbered(const numbered &num) :mysn(num.mysn){} //为了方便输出声明为public int mysn; }; //练习13.14中的函数 void f(numbered s) { std::cout << s.mysn << std::endl; } //练习13.16中的函数 不会改变输出结果,一样都是a的输出结果。 void f(const numbered &s) { std::cout << s.mysn << std::endl; } using namespace std; int main() { numbered a, b = a, c = b; f(a); f(b); f(c); return 0; }输出结果总是一样的:
相关文章推荐
- C++ primer 第五版 中文版 练习 9.3 & 练习 9.4 个人 code
- C++ primer 第五版 中文版 练习 9.49 个人code
- C++ primer 第五版 中文版 练习 9.51 个人code
- C++ primer 第五版 中文版 练习 10.18 个人code
- C++ primer 第五版 中文版 练习 10.29 个人code
- C++ primer 第五版 中文版 练习 10.24个人code
- C++ primer 第五版 中文版 练习 10.3 个人code
- C++ primer 第五版 中文版 练习 10.11 个人code
- C++ primer 第五版 中文版 练习 10.20 个人code
- C++ primer 第五版 中文版 练习 10.14 个人code
- C++ primer 第五版 中文版 练习 10.28 个人code
- C++ primer 第五版 中文版 练习 9.45 个人code 及疑问
- C++ primer 第五版 中文版 练习 10.6 个人code
- C++ primer 第五版 中文版 练习 10.1 个人code
- C++ primer 第五版 中文版 练习 10.21 个人code
- C++ primer 第五版 中文版 练习 9.43 个人code+github上的代码
- C++ primer 第五版 中文版 练习 9.47 个人code
- C++ primer 第五版 中文版 练习 8.13 个人 code
- C++ primer 第五版 中文版 练习 10.25个人code
- C++ primer 第五版 中文版 练习 10.22 个人code