c/c++面向对象编程基础
2023-03-14 22:48:44 时间
c/c++ 面向对象编程基础
对象 = 属性+方法,属性对应着对象特征的描述,也就是变量,方法对应着对象的行为,也就是函数。
优点
与人类习惯的思维方法一致
稳定性好
可重用性好
易于开发大型软件产品
可维护性好
易于测试和调试
类是对象的封装,实现步骤:
定义一个类,分别用数据成员和函数成员来表现对象的属性和行为
进一步定义类的成员函数,使各个函数相互配合以实现接口对外提供的功能
通过该类声明属于该类的变量(即对象)
一.c++类的定义
1.类定义的基本形式
private和public无先后顺序。
class 类名 { private: 私有成员函数 私有数据成员定义 public: 公空成员函数 };
2.类定义的实例
class student { private: float score; public: void print(); void setscore(float t); };
3.在定义类的时候定义成员函数
class student { private: float score; public: void print() { cout<<score<<endl; } void setscore(float t) { score = t; }
4.在类定义的外部定义成员函数
class student { private: float score; public: void print(); void setscore(float); }; void student::print() { cout<<score<<endl; } void setscore(float t) { score = t; }
二.类的使用
1.声明一个类对象
student stu1; stu1.setscore(5.1); stu1.print();
2.对象的作用域、可见域和生存期
和普通对象的 作用域、可见域和生存期差不多,也有全局、局部和类内之分。
局部对象: 当对象被定义时调用构造函数,该对象被创建;当程序退出定义该对象所在的函数体或程序块时,调用析构函数,释放该对象。
静态对象:当程序第一次执行行所定义的静态对象时,该对象被创建;当程序结束时,该对象被释放。
全局对象:当程序开始时,调用构造函数创建对象;当程序结束时,调用析构函数释放对象。
三. 对象类的创建和销毁
1.认识构造函数:
当对象创建的时候,自动调用构造函数,函数名与类名相同,没有返回类型和返回值。
作用:给对象一个标识符,为对象开辟内存空间,完成数据成员的初始化工作。
2.在用户没有定义构造函数的时候,系统会生成默认构造函数,但只是给一个标识符和内存空间,并不会初始化。
3.用户定义构造函数
定义无参数的构造函数
class stu { private: int x; int y; public: stu(); } stu::stu() { x = 0; y = 0; }
定义有参数的构造函数
class stu { private: int x; int y; public: stu(int x1,int y1) { x = x1; y = y1; } }; int main() { stu a(5,6); return 0; }
构造函数支持重载,在传递的初始类型不同意的时候,可以定义不同类型的参数,供其调用。
4.初始化表达式
公众号:FPGA之旅
相关文章
- 设计模式(一)----设计模式概述及UML图解析
- ElasticSearch7.3学习(三十四)----生产环境集群部署总结
- Java - CodeForces - 266A
- Java - CodeForces - 1230A
- Java - CodeForces - 469C
- Spark Driver Program剖析
- 博客园与csdn同步写作
- 错误:tensorflow.python.framework.errors_impl.InvalidArgumentError: ValueError: attempt to get argmax of an empty sequence的解决方案
- SecureCRT终端显示中文乱码问题的解决方案
- Anaconda常用命令收藏----后期还会更新
- 操作系统概述
- 图像分类综述
- 不忘初心、方得始终—2019总结暨2020展望
- 数学基础系列(六)----特征值分解和奇异值分解(SVD)
- 错误:EfficientDet网络出现"No boxes to NMS"并且mAP:0.0的解决方案
- 数学基础系列(五)----矩阵、矩阵的秩、向量、特征值与特征向量
- 数学基础系列(四)----拉格朗日乘子法、行列式、矩阵基础
- 数学基础系列(三)----第一中值定理、微积分基本定理、牛莱公式、泰勒公式
- 数学基础系列(二)----偏导数、方向导数、梯度、微积分
- 数学基础系列(一)----函数、极限、连续性、导数