欲写好一个类,必先将其解剖(类和对象)

Preface

C语言最重要的特点是面向过程,而面向过程的核心是用函数实现的。
C++最重要的特点是面向对象,而面向对象的核心使用类实现的,而类中又包括了数据成员和成员函数。
像我这种C++入门级的小白,看了无数的类,听了无数的课,但真正自己写类的时候,还是叫天天不灵,叫地地不应啊~~~所以五一小长假后的第一天,鼓起勇气再听一遍网课,将类解剖一下,然后再试着重建,加油!

1.类和对象

类的组成
类名
数据成员
成员函数
访问限定符
public
private
protected
对象实例化的两种方式
从栈中实例化
从堆中实例化

从栈中实例化对象

class TV{
public:
    char name[20];
    int type;

    void changeVol();
    void power();
};
int main(void)
{
    TV tv;
    TV tv[20];//定义对象的数组
    return 0;
}

从堆中实例化对象

int main(void)
{
    TV *p = new TV();
    TV *q = new TV[20];
    delete p;//务必清空内存
    delete []q;
    return 0;
}

对象成员的访问
访问单一对象
从栈中访问

int main(void)
{
    TV tv;
    tv.type = 0;
    tv.changeVol();
    return 0;
}

从堆中访问

int main(void)
{
    TV *p = new TV();
    p->type = 0;
    p->changeVol();
    delete p;
    p = NULL;
    return 0;
}

访问数组对象:使用for循环

int main(void)
{
    TV *p = new TV[5];
    for(int i=0; i<5; i++){
        p[i]->type = 0;
        p[i]->changeVol();
    }
    delete []p;
    p = NULL;
    return 0;
}

一个小例子

#include<iostream>
#include<stdlib.h>
using namespace std;

class Coordinate{//从类名中看出来类的功能
public:
    int x;
    int y;
    void printX{
        cout<<x<<endl;
    }
    void printY{
        cout<<y<<endl;
    }

int main(){
    Coordinate coor;//从栈中实例化
    coor.x = 10;
    coor.y = 20;
    coor.printX();
    coor.printY();

    Coordinate *p = new Coordinate();//从堆中实例化
    if(NULL == p){
        //申请内存失败
        return 0;
    }
    p->x = 100;
    p->y = 200;
    p->printX();
    p->printY();
    delete p;
    p = NULL;

    system("pause");
    return 0;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值