四类与对象
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 面向对象专题:类的空间问题类与对象之间的关系类与类之间的关系