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

C++类与对象——类与对象的基本概念,第1张

本章是类与对象的第一小节,话不多说,这就开始啦~
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的值,反之成立。


 

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

 

 

 

 

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/634269.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-16
下一篇 2022-04-16

发表评论

登录后才能评论

评论列表(0条)

保存