C++ 类
来源:互联网 发布:linux ll什么意思 编辑:程序博客网 时间:2024/05/22 13:03
搞了C++这么久,发现类里面有一些基本概念和关系不是很明白,于是理了下思路,准备写下这篇文章,希望大家也能有所收获。
概念
- 类和对象
类是对象的抽象,而对象是类的具体实例。这是书上的原话,非常拗口,形象点说,类就好比是一个印章,而实例就是印章盖下的印。(ps: 最近刷了部民国刑侦反腐剧——破晓,有许多陈小春在里面刻章的场景,引起了兴趣。) 作为一个程序员还是喜欢用代码说话,类和对象的代码如下:
//类class Student{ int id; char name[20]; char sex; int age;};//对象Student ZhangShan;
属性、行为、成员、成员函数
一直对C++类中的变量和函数的叫法不太清楚,总感觉有点模糊,听到一些名词,也能大概知道是指什么。每到自己需要进行描述的时候,就不知道该怎么称呼。于是翻了下C++的书籍,找到了这四个概念。
属性和行为是对象应该具备的两个要素,不是C++中的概念,而成员和成员函数则是C++对属性和行为的表述。属性是一个对象的静态特征,如学生的学号、姓名等;行为是一个对象的动态特征,例如学生学习、早操等。对应到刚刚的问题,可以更加直观的解释,属性(成员)->类中的变量,行为(成员函数)->类中的函数。上面那个Student类中的id、name、sex、age就是成员,而display()就是成员函数。:: 和 .
:: 和 . 两个都可以访问类中成员和成员函数。它们俩的区别有:- :: 表示作用域限定符,而 . 表示成员运算符;
- ::是类使用的,而 . 是对象使用的。
例如:
Student::display(){ cout<<"学号:"<<id<<endl; cout<<"姓名:"<<name<<endl; cout<<"性别:"<<sex<<endl; cout<<"年龄:"<<age<<endl;}//maincout<<"学号:"<<ZhangShan.id<<endl;cout<<"姓名:"<<ZhangShan.name<<endl;cout<<"性别:"<<ZhangShan.sex<<endl;cout<<"年龄:"<<ZhangShan.age<<endl;
- 构造函数/构造成员函数
定义:与类同名的成员函数。
作用:初始化对象。 - 重载函数
定义:函数同名,参数不同。
作用:一个接口可以实现不同的参数调用 析构函数/析构成员函数
定义:函数名与类名相同,需要在前面加上符号”~”。
作用:在撤销对象占用内存之前完成一些清理工作。注:
构造函数与析构函数的调用顺序:
未完待续…
0 0
- 【c/c++】复数类
- 【c/c++】类模板
- [C/C++] 类
- 【C/C++】嵌套类
- 【C/C++】模板类
- C++------类
- C#--类
- C++-->类
- 【C++】类
- 【C#】类
- c++,C#,java中的类
- c与c++?励志类
- 【C/C++】String类实现
- 【C/C++】类和结构
- 含有指针成员的类的拷贝[C/C++/C#]
- 不能被继承的类[C/C++/C#]
- Objective-C类-Objective-C self 关键字
- [C/C++] 第12章 类 primer
- keras使用
- CNN学习之旅[2]之第一次加副标题的BP算法理解
- Android动画简易收录
- pandas中DataFrame关于显示值省略的解决方法
- 输出正整数分解的所有数的最大乘积
- C++ 类
- web 开发中的中文乱码问题
- 开发Maven项目的时候遇到的一个很坑的问题
- Linux 进程描述符task_struct详解
- 01背包 ,完全背包,多重背包 dp (动态规划入门dp)
- ArcGIS API For Javascript之地图基本加载与显示,地图切换、缩放、定位、比例尺、鹰眼图、坐标显示、查询搜索功能实现
- tensorflow32《TensorFlow实战》笔记-05 TensorFlow实现卷积神经网络 code
- Linux新手生存笔记[2]——vim训练稿
- iOS之NSBundle的使用/打包成bundle文件