四类与对象

Posted tyghl

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了四类与对象相关的知识,希望对你有一定的参考价值。

C++中,定义一个类,相当于定义了一个数据结构;

类对数据和方法进行了封装,一个类定义了该类型的对象包含的数据和可以执行的操作;

---------

struct定义结构体也是定义数据结构,class定义类也是定义数据结构,区别是什么?

  默认访问级别不同。struct成员默认访问级别是public,class成员默认访问级别是private。

 

为什么要引入类的概念?(类的好处)

  实际程序编写时,通常一个类对应一个.h头文件和一个.cpp源文件,使定义和实现分离,便于程序的编写、调试、维护;

  类的背后蕴含接口与实现分离的思想,类的实现者和类的使用者互不影响,便于代码重用,便于修改维护;

 

单个类中的相关概念:

  1 访问级别

    private——不能被类的使用者访问,只能被该类的实现者使用;

    protected——不能被类的使用者访问,但能被类及其继承类实现者使用;

    public——能被类的使用者和实现者、继承类访问;

  2 成员变量、成员函数

    成员变量——属于该类的变量;成员函数——属于该类的函数;

  3 构造函数、析构函数

    构造函数——在类定义对象的时候被自动调用执行的函数;(常用于变量初始化)

      默认构造函数、有参构造函数、赋值构造函数;(大多数类应该定义默认构造函数和赋值构造函数!)

      成员变量初始化顺序:

        先调用基类构造函数,再调用子类构造函数;构造函数若用初始化列表初始化,则按照类中成员定义的顺序进行;

    析构函数——在对象消亡时自动调用执行的函数;(常用于资源释放)

      析构函数调用顺序:

        先调用子类析构函数,再调用基类析构函数;

  4 函数重载

    函数名相同,函数参数不同的两个函数称为函数重载;(与返回值是否相同无关)

    构造函数重载、运算符重载等;

  5 友元(函数/类):关键字friend

    允许特定的非成员函数访问一个类的私有成员,同时仍然阻止一般的访问;

    例如,<<操作符重载需要将<<函数设置为友元函数,使其能够访问对象的私有成员;

    若一个类被设置为友元,则该类中的任意一个成员函数都可以访问外部类的私有成员;

  6 this关键字

    指向本对象的指针;

    可以在函数中使用this,表示调用本对象的成员函数;(处理成员函数名与形参冲突问题)

    可以在函数返回值中返回*this,表示返回本对象,实现链式调用;(例如,cout中的<<操作符)

以上是关于四类与对象的主要内容,如果未能解决你的问题,请参考以下文章

冯志霞201771010107《面向对象程序设计(java)》第四周学习总结

python 面向对象专题:类的空间问题类与对象之间的关系类与类之间的关系

python 面向对象专题:类的空间问题类与对象之间的关系类与类之间的关系

类与对象

Java-类与对象-多态

Python初识类与对象