c++ 类、面向对象

目录

前言

面向对象

    类成员访问权限


前言

    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了,其他两个不能被访问。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值