C++自学笔记(7)之类与对象

类的构成

在这里插入图片描述
注意定义完类{}后面的:
封装,可以访问类的一部分属性,其余的无法访问。通过访问限定符实现,分为以下三类(未限定时是默认私有的)

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;
}

内存

在这里插入图片描述
栈区内存由系统进行分配,堆区内存需要程序员去管理。
类在实例化之前不会占内存,但是实例化后,如实例化出了三个对象,这三个对象要分别在栈区开辟出一段内存。而逻辑代码只编译出了一份放在代码区,供所有的对象使用。
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_39672732/article/details/88774044