C++中类的声明
最佳答案 问答题库578位专家为你答疑解惑
C++中类的声明
假设您要编写一个模拟人(如您自己)的程序。人有其特征:姓名、出生日期、出生地和性别(这些信息让每个人都是独一无二的),还能做某些事情,如交谈、自我介绍等。
要在程序中模拟人,需要一个结构,将定义人的属性(数据)以及人可使用这些属性执行的操作(函数)整合在一起。这种结构就是类。
要声明类,可使用关键字 class,并在它后面依次包含类名,一组放在{}内的成员属性和成员函数,以及结尾的分号。
class 类名;
我们可以仅仅声明类而暂时不定义它,这种声明被称为前向声明。在它声明之后定义之前该类是个不完全类型。
不完全类型只能在非常有限的情况下使用:可以定义指向这种类型的指针或引用,也可以作为一个已经声明(但没有定义)的函数的参数或返回类型。
对于一个类来说,在创建它的对象前必须首先完成类的定义,而不能仅仅被声明。否则编译器就无法了解这样的对象需要多少存储空间。类似的,类也必须首先被定义,然后才能用引用或者指针访问其成员。
对于类的静态成员,直到类被定义之后数据成员才能被声明成这种类类型。我们必须首先完成类的定义,然后编译器才能知道存储该数据成员需要多少空间。因为只有当类全部完成后类才算被定义,所以一个类的成员类型不能是该类自己。然而,一旦一个类的名字出现后,它就被认为是声明过了(但尚未定义),因此类允许包含指向它自身类型的引用或指针。
类声明将类本身及其属性告诉编译器。类声明本身并不能改变程序的行为,必须要使用类,就像需要调用函数一样。
模拟人类的类类似于下面这样(请暂时不要考虑其中的语法):
class Human
{// Member attributes:string name;string dateOfBirth;string placeOfBirth;string gender;// Member functions:void Talk(string textToTalk);void IntroduceSelf();...
};
不用说,IntroduceSelf()
将使用 Talk()
以及封装在类 Human 中的一些数据。通过关键字 class, C++ 提供了一种功能强大的方式,让您能够创建自己的数据类型,并在其中封装属性和使用它们的函数。
类的所有属性(这里是 name、 dateOfBirth、 placeOfBirth 和 gender)以及在其中声明的函数(Talk()
和 IntroduceSelf( )
)都是类(Human)的成员。
封装指的是将数据以及使用它们的函数进行逻辑编组,这是面向对象编程的重要特征。
该文章会更新,欢迎大家批评指正。
推荐一个零声学院的C++服务器开发课程,个人觉得老师讲得不错,
分享给大家:Linux,Nginx,ZeroMQ,MySQL,Redis,
fastdfs,MongoDB,ZK,流媒体,CDN,P2P,K8S,Docker,
TCP/IP,协程,DPDK等技术内容
点击立即学习:C/C++后台高级服务器课程
99%的人还看了
相似问题
- uniapp和vue3+ts开发小程序,使用vscode提示声明变量冲突解决办法
- 找不到模块“./App.vue”或其相应的类型声明。ts(2307)
- 01-Spring中事务的实现之编程式事务和声明式事务,以及事务的属性之传播行为,隔离级别,事务的回滚
- 02-Sping事务实现之声明式事务基于XML的实现方式
- Bash 4关联数组:错误“声明:-A:无效选项”
- JVM类的声明周期
- 【C语言】函数指针存疑调试及回调函数编写(结构体内的Callback回调函数传参和虚伪的回调函数__weak声明)
- k8s 金丝雀发布与声明式管理
- C++类内定义友元却无需类外声明的特殊情况
- Java类包+final声明
猜你感兴趣
版权申明
本文"C++中类的声明":http://eshow365.cn/6-22347-0.html 内容来自互联网,请自行判断内容的正确性。如有侵权请联系我们,立即删除!
- 上一篇: 第六十五章 符号概览
- 下一篇: 【Java 进阶篇】Java XML快速入门:理解、解析和生成XML