C++笔记之类与对象

今天开始学习C++中的类和对象。

一、类的组成

类的组成部分有数据成员和成员函数。

1.1数据成员的命名规则

在给数据成员起名字的时候尽量遵循这种规律:m_+数据类型+名字。比如一个Student有四个数据成员,分别是姓名(类型是string)、性别(类型是char)、年龄(类型是int)、成绩(类型是double),那么用来表示这些数据成员的变量名应该分别为:m_strName、m_cGender、m_iAge、m_dScore。

1.2类的访问权限

外界对类成员的访问权限,通过访问限定符来控制,C++中的访问限定符有三种:public(公共的)、protected(受保护的)、private(私有的)。顾名思义,public就是任何人都可以访问的,被private修饰的是只有在这个类内部才可以访问,protected是只有这个类的子类(直接子类或者简介子类)或者叫做超类才能访问。这些访问限定符的含义和Java中的访问控制符的含义是相似的。如果在定义类时没有指定成员的访问权限,那么系统会默认为该成员是私有的,也就是private。一般习惯把public的部分写在前面,而把private的部分写在后面。
定义类的方式:

class Coordinate{
//只要在“public:”后面的成员都是公共的
publicvoid printX(){
        cout << x << endl;
    }
    void printY(){
        cout << y << endl;
    }
//只要在“private:”后面的成员都是私有的
private:
    int x;
    int y;
};  //结尾不要忘了加分号

二、类的实例化

类的实例化有两种方式,一种是从栈中实例化,一种是从堆中实例化。

2.1从栈中实例化对象,对象成员访问

以上面定义好的那个类为例,在栈中实例化对象的方法是:

int main(void){
    Coordinate coor;//实例化一个对象
    Coordinate coor_arr[20];//实例化一个对象数组
    //对象成员访问
    coor.x = 10;
    coor.y = 20;
    coor.printX();
    coor.printY();
    return 0;
}

从栈中实例化的对象不需要程序员手动释放内存,待对象不再使用后,系统会自动回收对象占用的内存。

2.2从堆中实例化对象,对象成员访问

从堆中实例化对象:

int main(void){
    Coordinate *p = new Coordinate();//实例化一个对象
    Coordinate *q = new Coordinate[20];//实例化一个对象数组
    if(NULL == p){//如果内存申请失败,退出程序
        return 0;
    }
    if(NULL == q){//如果内存申请失败,退出程序
        return 0;
    }
    //对象成员访问
    p->x = 10;
    p->y = 20;
    //释放内存
    delete p;
    delete []q;
    //将指针置为空
    p = NULL;
    q = NULL;
    return 0;
}

从堆中实例化的对象使用完后必须释放内存,否则会造成内存泄漏。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值