【C++】抽象和类(1)--OOP编程特性、类规范基本组成、接口是什么、类与结构的区别

举报
王博Kings 发表于 2020/12/30 00:22:58 2020/12/30
【摘要】 目录 0 . 基本概念 OOP特性: 过程性编程: OOP编程: 1. 抽象和类 1.1 类型是什么 指定基本类型完成了三项工作: 1.2 C++中的类 类规范由两个部分组成: 什么是接口? 1.3 stock00.h 1.3.1.访问控制 1.3.2 控制对成员的访问:公有还是私有 类与结构的区别   0 . 基本概念 面向对象编程(OO...

目录

0 . 基本概念

OOP特性:

过程性编程:

OOP编程:

1. 抽象和类

1.1 类型是什么

指定基本类型完成了三项工作:

1.2 C++中的类

类规范由两个部分组成:

什么是接口?

1.3 stock00.h

1.3.1.访问控制

1.3.2 控制对成员的访问:公有还是私有

类与结构的区别

 


0 . 基本概念

面向对象编程(OOP)是一种特殊的、设计程序的概念性方法。

OOP特性:

  • 抽象
  • 封装和数据隐藏
  • 多态
  • 继承
  • 代码的可重用性

过程性编程:

过程性编程方法,首先考虑要遵循的步骤,然后考虑如何表示这些数据。

(并不需要程序一直运行,用户可能希望能够将数据存储在一个文件中,然后从文件中读取数据 )

OOP编程:

首先考虑数据,不仅要考虑如何表示数据,也要考虑如何使用数据。

用户与数据交互的方式有三种:初始化、更新和报告---用户的接口。

采用OOP方法,首先从用户的角度考虑对象--描述对象所需的数据以及描述用户与数据交互所需的操作。完成对接口的描述后,需要确定如何实现接口和数据存储。最后使用新的设计方案创建出程序。

1. 抽象和类

将问题的本质特征抽象出来,根据特征来描述解决方案。

抽象是通往用户定义类型的捷径,在C++中,用户定义类型指的是实现抽象接口的类的设计。

1.1 类型是什么

指定基本类型完成了三项工作:

  • 决定数据对象需要的内存数量
  • 决定如何解释内存中的位(long和float在内存中占用的位数相同,但将它们转换为数值的方法不同)
  • 决定可使用数据对象执行的操作或方法

1.2 C++中的类

类是一种将抽象转换为用户定义类型的C++工具,它将数据表示和操纵数据的方法组合成一个整洁的包。

类规范由两个部分组成:

  • 类声明:以数据成员的方式描述数据部分,以成员函数的方式描述公有接口
  • 类方法定义:描述如何实现类成员函数

什么是接口?

类名首字母大写

1.3 stock00.h


  
  1. // stock00.h -- Stock class interface
  2. // 版本 00 类的声明
  3. #ifndef STOCK00_H_
  4. #define STOCK00_H_
  5. #include<string>
  6. class Stock
  7. {
  8. public:
  9. void acquire(const std::string & co, long n, double pr);
  10. void buy(long num, double price);
  11. void sell(long num, double price);
  12. void update(double price);
  13. void show();
  14. private:
  15. std::string company;
  16. long shares; //股票数量
  17. double share_val; // 每股的价格
  18. double total_val; //股票的总价格
  19. void set_tot()
  20. {
  21. total_val = shares*share_val;
  22. }
  23. };
  24. #endif

1.3.1.访问控制

 

1.3.2 控制对成员的访问:公有还是私有

隐藏数据是OOP主要目标,因此数据线通常放在私有部分,组成类接口的成员函数放在公有部分,否则就无法调用。

不必在类声明中使用privte关键字,这是类对象的默认访问控制。

类与结构的区别

 

文章来源: kings.blog.csdn.net,作者:人工智能博士,版权归原作者所有,如需转载,请联系作者。

原文链接:kings.blog.csdn.net/article/details/97646349

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。