思维导图
自己封装一个矩形类(Rect),拥有私有属性:宽度(width)、高度(height),
定义公有成员函数:
初始化函数:void init(int w, int h)
更改宽度的函数:set_w(int w)
更改高度的函数:set_h(int h)
输出该矩形的周长和面积函数:void show()
代码:
#include <iostream>
using namespace std;
class Rect//定义一个矩形类
{
private://表示私有属性
int width;//矩形的宽
int height;//矩形的高
public://表示公共属性
void init(int w,int h)//矩形的宽和高的初始化函数
{
cout << "please enter the rectangle's height:" ;
cin >> height;//从终端输入矩形的高
cout << "please enter the rectangle's width:" ;
cin >> width;//从终端输入矩形的宽
}
void set_w(int w)
{
cout << "please enter changed width:" ;
cin >> width;//从终端输入更改后的宽
}
void set_h(int h)
{
cout << "please enter changed height:" ;
cin >> height;//从终端输入更改后的高
}
void show()
{
int perimeter=(height+width)*2;//求矩形的周长
int area=height*width;//求矩形的面积
cout << "The rectangle's perimeter is " << perimeter << endl;//输出矩形的周长
cout << "The rectangle's area is " << area << endl;//输出矩形的面积
}
};
int main()
{
Rect a;//用矩形类定义一个矩形a
int w,h;//定义矩形的宽和高
a.init(w,h);//初始化
a.show();//输出矩形的周长和面积
a.set_w(w);//更改矩形的宽
a.set_h(h);//更改矩形的高
a.show();//输出更改后的矩形的周长和面积
return 0;
}
结果:
模拟面试
一.什么是内存泄漏,如何避免
答:内存泄漏是程序在位变量申请空间之后没有及时释放,随着时间的推移,内存泄漏会导致可用内存逐渐减少,最终导致程序崩溃或者系统运行缓慢
如何避免:及时释放内存
二.解释一下C语言中的堆和栈
答:堆区:
1. 由程序员手动申请、手动释放内存。
2. 堆区需要满足队列的思想,先进先出,变量先定义先分配内存,从小地址到大地址申请。
3. 堆区内存大小几G。
4. 堆区申请容易出现碎片化,借助链表实现,在堆区内存中依次遍历变量所需内存大小,
当找到合适的申请大小,则从链表中删除,把该内存分配给变量。
栈区:
1. 由计算机自动申请、自动释放内存。
2. 栈区需要满足栈的思想实现,先进后出,变量先定义后分配内存,从大地址到小地址申请。
3. 栈区内存大小几M。
4. 栈区会出现栈溢出情况。