
目录
前言
c++在C语言基础上增加了面向对象编程,c++支持面向对象编程,而类则是c++的核心特征,用于指定对象形式。类中的数据、方法、函数都是类的成员。
面向对象
面向对象三大(也有说是四大)特性:封装、继承、多态、(第四特性:抽象)。
封装:可以隐藏代码细节,使代码模块化。其定义是将数据和操作数据的方法进行有机结合,隐藏对象属性与细节,仅对外公开接口进行交互。
继承:可以使用现有类的所有功能,并在无需重新编写原来的类的情况下对这些功能进行扩展。其继承的过程,就是从一般到特殊的过程。
多态:允许你将父对象设置成为和一个或更多他自身的子对象相等的技术。也就是允许将子类类型的指针赋值给父类类型的指针。
类
类的定义是在class关键字后面跟名称,在大括号内定义类的成员。这有些类似于C语言中的struct结构体,但是C语言中的结构体中不能定义方法,c++可以,在c++的struct定义的内容就是类。
类只是一个描述,不是实体,对象才是实体。
class M{ //定义一个M类,类成员包括一个变量和一个方法
int a;
void func();
};
int main(){
M m; //m是定义出来的一个M类型对象
}
注意:
可以将申明与定义全放在类中,但不推荐,因为如果多次使用则可能会重复定义(编译器可能将成员函数当做是内联函数)
可以将申明放在.h文件中,类的定义放在.cpp中。(在类外定义成员方法时,必须在方法名前加上类名)
如果用sizeof(类名)只能求得里面所有变量的大小(和结构体大小一样),类中的函数是通过符号表找到的,符号表中存储的是名字和地址的映射关系。
若对象中只有方法没有变量,或者什么都没有(空类),则大小为1。
类成员访问权限
public(公有):可以被任意实体访问
protected(保护):不能直接被类的实体访问,但是可以被子类访问,也可以被类的成员函数访问
private(私有):不能直接被类的实体访问,也不能被子类的实体访问,但是可以被类的成员函数访问
示例:
写一个student类,包含年龄,身高和分数,如果我们全部设为public,则三个变量全都可以被任意实体访问:

如果将身高设为保护,将分数设为私有:可以发现A中只剩age了,其他两个不能被访问。

75万+

被折叠的 条评论
为什么被折叠?



