【C++】类与对象——类与对象的基本概念

本章是类与对象的第一小节,话不多说,这就开始啦~


1.结构体与类

2.类的声明

3.成员函数的定义

4.对象的定义与使用



1.结构体与类

1.1结构体的扩充

       结构体为C语言的一种自定义的数据类型,可以含有不同类型的数据,如下为学生结构体的完整代码。结构体中的数据和函数都是结构体的成员

2.类的声明

        既然有结构体struct了,那么使用类class的好处是什么呢?原来,C中struct的成员可以任意访问,对于一些隐私信息是不允许的。为了保护类中的数据安全,在C++中将类中的成员分为两类:公有成员(用public声明);私有成员(用private声明),私有成员(包括数据成员和成员函数)只能被类内的成员函数访问,不能被类外的对象访问。公有成员(包括数据成员和成员函数)既可以被类内的成员函数访问,又可以被类外的对象访问,如果不添加pubic,类内的所有成员默认私有,而C的结构体默认公有。PS:一般来说,把需要保护的数据设为私有,成员函数设为公有。成员函数为进入类的人口。来具体看一下用具体的代码实现吧,认真观察一下class与struct的不同

 说明:

1)除public与private,类中的成员还可用protect关键字来说明,其成员为保护成员,只可被本类的成员函数和本类派生类的成员函数访问,半隐蔽状态,在之后的文章里会说明。

2)public,private,protect顺序不唯一,无论如何安置,功能不变

3)数据成员可以为任意数据类型,但不能用自动(auto),寄存器(register),外部(extern)进行说明。

3.成员函数的定义

类的成员函数为函数的一种,也有函数名,返回值类型与参数表,可以访问本类中的任何一个成员,为进入类内部的人口。以下为成员函数的三种定义方式。

3.1在类的声明中只给出函数原型,将定义放在函数外部。

说明:

1)在类外定义函数时,格式为 :返回值类型  类名::函数名(数据类型 形参列表或无参)

2)成员函数的参数表可以不说明参数的名字,所以上述函数定义可改为void Stu::set(string,string,string);。

3)推荐这种定义方式,减少类的代码长度,简洁明了,便于阅读。

 3.2 将成员函数定义在类的内部

说明

这种定义方法,直接将函数作为内联函数处理。 

3.3 在类的声明中只给出函数原型,将定义放在函数外部,并用关键字inline,确定此函数为内联函数,这种定义方法称为显式定义。

 4.对象的定义与使用

4.1 对象的定义

一个类是用户声明的一个数据类型,类的对象可以看成是类中的一个实例,如Student类的一名学生,Date类的一个具体日期。

以下为对象的两种定义方式

1)在声明类的同时,直接定义对象,即在声明类的右}后,写出属于类的对象名,之后结构不变。

 2)在声明类之后,需要使用时再定义

4.2 对象中成员的访问

通过对象,可以访问类中的公有成员,访问对象的成员有三种方法。

1)对象名 . 数据成员名对象名 . 成员函数名。" . "叫做对象选择符,简称点运算符。具体代码可见上图,此处无赘述。注意,对象不能直接访问类中的私有成员,只有类内部的所有成员可以互相访问,所以,对象只能以公有成员为入口,接触到私有成员。

2)通过指向对象的指针来访问对象中的成员

若定义的是指向对象的指针,必须使用" -> "操作符,定义d3为指向d1的指针,可改变d1的值,具体代码如下。

 说明

*d3 = d1,所以,d1.Print();    (*d3).Print();   d3->Print ;  三者等价

3)通过对对象的引用访问对象中的成员

使用引用 &,为对象d1取一个别名 d4,d4与d1公用一个空间,可以通过d4改变d1的值,反之成立。

 到这里,类与对象的第一节就结束啦,你学到了吗?后续知识持续更新,我们一起为未来奋斗吧!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值