C++ 类

来源:互联网 发布:linux ll什么意思 编辑:程序博客网 时间:2024/05/22 13:03

搞了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;}//maincout<<"学号:"<<ZhangShan.id<<endl;cout<<"姓名:"<<ZhangShan.name<<endl;cout<<"性别:"<<ZhangShan.sex<<endl;cout<<"年龄:"<<ZhangShan.age<<endl;
  • 构造函数/构造成员函数
    定义:与类同名的成员函数。
    作用:初始化对象。
  • 重载函数
    定义:函数同名,参数不同。
    作用:一个接口可以实现不同的参数调用
  • 析构函数/析构成员函数
    定义:函数名与类名相同,需要在前面加上符号”~”。
    作用:在撤销对象占用内存之前完成一些清理工作。

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

  • 未完待续…

0 0
原创粉丝点击