C++ 类

搞了C++这么久,发现类里面有一些基本概念和关系不是很明白,于是理了下思路,准备写下这篇文章,希望大家也能有所收获。

概念

  • 类和对象
    类是对象的抽象,而对象是类的具体实例。这是书上的原话,非常拗口,形象点说,类就好比是一个印章,而实例就是印章盖下的印。(ps: 最近刷了部民国刑侦反腐剧——破晓,有许多陈小春在里面刻章的场景,引起了兴趣。) 作为一个程序员还是喜欢用代码说话,类和对象的代码如下:
//类
class Student
{
    int id;
    char name[20];
    char sex;
    int age;
};

//对象
Student ZhangShan;
  • 属性、行为、成员、成员函数
    一直对C++类中的变量和函数的叫法不太清楚,总感觉有点模糊,听到一些名词,也能大概知道是指什么。每到自己需要进行描述的时候,就不知道该怎么称呼。于是翻了下C++的书籍,找到了这四个概念。
    属性和行为是对象应该具备的两个要素,不是C++中的概念,而成员和成员函数则是C++对属性和行为的表述。属性是一个对象的静态特征,如学生的学号、姓名等;行为是一个对象的动态特征,例如学生学习、早操等。对应到刚刚的问题,可以更加直观的解释,属性(成员)->类中的变量,行为(成员函数)->类中的函数。上面那个Student类中的id、name、sex、age就是成员,而display()就是成员函数。

  • :: 和 .
    :: 和 . 两个都可以访问类中成员和成员函数。它们俩的区别有:

    1. :: 表示作用域限定符,而 . 表示成员运算符;
    2. ::是类使用的,而 . 是对象使用的。
      例如:
Student::display()
{
    cout<<"学号:"<<id<<endl;
    cout<<"姓名:"<<name<<endl;
    cout<<"性别:"<<sex<<endl;
    cout<<"年龄:"<<age<<endl;
}
//main
cout<<"学号:"<<ZhangShan.id<<endl;
cout<<"姓名:"<<ZhangShan.name<<endl;
cout<<"性别:"<<ZhangShan.sex<<endl;
cout<<"年龄:"<<ZhangShan.age<<endl;
  • 构造函数/构造成员函数
    定义:与类同名的成员函数。
    作用:初始化对象。
  • 重载函数
    定义:函数同名,参数不同。
    作用:一个接口可以实现不同的参数调用
  • 析构函数/析构成员函数
    定义:函数名与类名相同,需要在前面加上符号”~”。
    作用:在撤销对象占用内存之前完成一些清理工作。

    注:
    构造函数与析构函数的调用顺序:
    构造函数与析构函数的调用顺序

  • 未完待续…

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值