类的构成
注意定义完类{}后面的:
封装,可以访问类的一部分属性,其余的无法访问。通过访问限定符
实现,分为以下三类(未限定时是默认私有的)
public | 公共的 |
---|---|
protected | 受保护的 |
private | 私有的 |
类的成员可以从类外直接访问,用public进行修饰。而private修饰的只能是类内的成员访问。
类实例化
类可实例化成对象,分为栈实例化与堆实例化
栈实例化
申请内存后无需释放
堆实例化
申请内存使用完后必须释放
对栈及堆访问对象
对象数组访问
看一段例子
#include <iostream>
using namespace std;
class Coorinate
{
public: //声明可以从类外调用其属性或函数
int x;
int y;
void printX()
{
cout<<x<<endl;
}
void printY()
{
cout<<y<<endl;
}
};
int main(void)
{
Coorinate coor; //栈实例化
coor.x=10;
coor.y=20;
coor.printX();
coor.printY();
Coorinate *p=new Coorinate(); //堆实例化
if (NULL==p) //检查内存申请是否成功
{
return 0; //failed
}
p->x=100;
p->y=200;
p->printX();
p->printY();
delete p; //释放内存
p=NULL;
return 0;
}
内存
栈区内存由系统进行分配,堆区内存需要程序员去管理。
类在实例化之前不会占内存,但是实例化后,如实例化出了三个对象,这三个对象要分别在栈区开辟出一段内存。而逻辑代码只编译出了一份放在代码区,供所有的对象使用。