没有合适的资源?快使用搜索试试~ 我知道了~
基础题目实验报告1
需积分: 0 0 下载量 142 浏览量
2022-08-03
18:06:04
上传
评论
收藏 480KB PDF 举报
温馨提示
试读
15页
1. 创建派生类的对象,基类的构造函数优先被调用 2. 类里有成员类,成员类的构造函数优先被调用 3. 类本身的构造函数 1. 用类的一个对象去初始化另一个对象
资源详情
资源评论
资源推荐
C++基础知识实验
因为是4*5的矩阵,在动态申请数组的时候,需要先动态申请4个二维int指针,再对每个二维int指针动
态申请五个一维int指针。
在程序运行过程中要及时释放动态申请的内存,对于二维指针来说,同样需要先释放每个一维指针,再
释放4个二维指针。
以矩阵加法为例,返回值为二维int指针。为什么在函数内部定义的变量,可以直接作为返回值呢?不会
发生内存访问错误吗?答案是不会,因为动态申请内存是在堆空间,而函数返回值之后释放的是栈空
间,因此在函数内申请的动态数组不会被释放,在函数外依然有效。
int **matrix = new int*[4];
for (int i = 0; i < 4; i++)
{
matrix[i] = new int[5];
}
for (int i = 0; i < 4; i++)
{
delete []matrix[i];
}
delete []matrix;
int ** add_matrix(int **A1, int ** A2)
{
cout << "------------执行矩阵加法------------" << endl;
int **A3 = new int*[4];
for (int i = 0; i < 4; i++)
{
A3[i] = new int[5];
}
for (int i = 0; i < 4; i++)
{
for (int j = 0; j < 5; j++)
{
A3[i][j] = A1[i][j] + A2[i][j];
}
}
return A3;
}
一个类中的构造函数的执行顺序:
1. 创建派生类的对象,基类的构造函数优先被调用
2. 类里有成员类,成员类的构造函数优先被调用
3. 类本身的构造函数
因此在构造一个Circle之前,先把它内部的所有成员类构造了,如Point类就先被构造
第五行开始,是执行get_center函数时,return m_center返回一个类的时候,是返回一个m_center的
拷贝,因此执行构造函数。
第七行,先是在cal_distance内,函数返回的时候,析构参数Point a
第八行,是析构a.get_center得到的临时Point类
后续就是正常的析构顺序
无参构造
double Point::cal_distance(Point a)
{
int ax = a.get_x(), ay = a.get_y();
int bx = _x, by = _y;
return sqrt(pow(ax - bx, 2) + pow(ay - by, 2));
}
Circle a;
Circle b;
intersect(a, b);
剩余14页未读,继续阅读
耄先森吖
- 粉丝: 56
- 资源: 293
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0