C++练习(coursera北大c++课后习题)

week3

#1

描述

下面程序输出的结果是:

0

5

请填空:

1 #include <iostream> 2 using namespace std; 3 class A { 4 public: 5 int val; 6 // 在此处补充你的代码 7 }; 8 main() { 9 A a; 10 cout << a.val << endl; 11 a.GetObj() = 5; 12 cout << a.val << endl; 13 }

要写一个GetObj的成员函数,他的返回值是val,而成员函数返回成员变量的值,要用int&类型作为返回值,否则返回的是val的副本

所以这样写

1 int& GetObj() { return val; }

#2

描述

下面程序的输出是:

10

请补足Sample类的成员函数。不能增加成员变量。

1 #include <iostream> 2 using namespace std; 3 class Sample{ 4 public: 5 int v; 6 Sample(int n):v(n) { } 7 // 在此处补充你的代码 8 }; 9 int main() { 10 Sample a(5); 11 Sample b = a; 12 cout << b.v; 13 return 0; 14 }

本来想实现**调用复制构造函数时,能将v累加:**新创的对象b的v能加上给他初始化的对象的v;但是新创建的对象没有v值,这种想法似乎只有赋值函数才可实现(即,已经初始化过的对象),所以放弃之,写成这样(但自己感觉不妥):

1 Sample(const Sample& n) 2 { 3 v = 2*n.v; 4 }

#3

描述

下面程序的输出结果是:

5,5

5,5

请填空:

1 #include <iostream> 2 using namespace std; 3 class Base { 4 public: 5 int k; 6 Base(int n):k(n) { } 7 }; 8 class Big { 9 public: 10 int v; Base b; 11 // 在此处补充你的代码 12 }; 13 int main() { 14 Big a1(5); Big a2 = a1; 15 cout << a1.v << "," << a1.b.k << endl; 16 cout << a2.v << "," << a2.b.k << endl; 17 return 0; 18 }

由14行知这里要创建Big类的构造函数和复制构造函数

注意到Big类有数据成员Base b,于是乎,必须要用参数列表进行初始化

1 Big(int v_):v(v_), b(v_) 2 { 3 } 4 5 Big(const Big& a):v(a.v),b(a.b.k) 6 { 7 }

用参数列表初始化成员的情况(2,3不是很懂,待尝试):1.需要初始化的数据成员是类的对象;2.需要初始化cosnt修饰的类成员;3.需要初始化引用成员的数据

自己做的时候遇到很多不懂的问题,都是问囧阳的,小白进步中,感谢阳神!感谢耐心!

点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

MySQL部分从库上面因为大量的临时表tmp_table造成慢查询

背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_

皕杰报表之UUID

​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

2020年前端实用代码段,为你的工作保驾护航

有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )