对象和类

过程性编程和面向对象编程

过程性编程:我需要输入一个人的姓名等信息,然后还需要一个函数来处理这些数据,然后还需要希望程序显示这个结果

面向对象的编程:我跟踪的对象是选手,所以我需要一个对象来表示选手的各个方面,然后我需要一些方法来处理这个对象,主要通过描述对象所需的数据以及描述用户与数据交互所需的操作。

抽象和类

类一般由两个部分组成:

类声明:以数据成员的方式描述数据部分,以成员函数(方法)的方式描述共有接口

类方法定义:描述如何实现类成员函数

通常将类放在头文件中,而将其实现写在文件中

class 类名 来创建一个类如class stock{}

类名 对象名 来创建一个新对象 stock sally;

访问控制

关键字private和public和protected,描述了对类成员的访问控制,private是默认的访问控制

使用类对象的程序都可以访问共有部分,但是只能通过公有成员函数或者友元函数来访问对象的私有成员,公有函数是程序和对象的私有成员之间的桥梁

封装:将实现细节放在一起并将他们和抽象分开

实现类成员函数

访问类成员使用:: 比如void stock::update();

在定义类内公有函数的时候,不需要加::因为他们同属于一个类

内联函数

一个函数其定义位于类声明中的叫内联函数,通常将比较小的函数作为内联函数

也可以在类声明之外定义成员函数,使用inline限定符可以将其设置为内联函数

使用哪个对象

如何使用对象的成员函数

stock a,b;//创建了两个对象ab,他们是stock类的
a.show();//使用了a对象的show方法

每个对象都有自己独立的储存空间,用于存放内部变量和类成员,但是同一个类的所有对象共享同一组类方法,即方法只有一个副本。

类的构造函数和析构函数

类不能像结构体一样,使用struct name={“123”,1}这样的方式初始化(如果有相应的构造函数是可以的)

因为数据部分的访问状态是私有的,程序不能直接访问,所以我们应该设计合适的成员函数让对象初始化,这个函数就称为构造函数

默认构造函数和类名相同

当对象过期的时候,程序自动执行一个函数–析构函数,默认析构函数名是类名前面加一个~

this指针

this指针指向用来调用成员函数的对象,比如函数调用stock1.topval(stock2)将this指针设置为stock1对象的地址

使用方式 this->xxx

可以创建一个对象数组,是包含很多对象的数组

在类中定义的名称的作用域都为整个类,可以在不同类中使用相同的类成员名而不会引起冲突,但是不能通过外部直接访问类

定义域内函数使用,void Ik::ViewIk()const;

使用static 来在域内定义常量

enum egg{small,big}和enum t_shirt{small,medium}是不被允许的,但是可以通过enum class egg或者enum struct egg成功。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值