Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
全部都想学怎么办
CPP_PrimerPlus
提交
53b4dbf7
C
CPP_PrimerPlus
项目概览
全部都想学怎么办
/
CPP_PrimerPlus
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
C
CPP_PrimerPlus
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
53b4dbf7
编写于
3月 23, 2022
作者:
全部都想学怎么办
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
上传新文件
上级
ee76af21
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
90 addition
and
0 deletion
+90
-0
Ch10对象和类/抽象和类/C++中的类/类成员函数说明.cpp
Ch10对象和类/抽象和类/C++中的类/类成员函数说明.cpp
+90
-0
未找到文件。
Ch10对象和类/抽象和类/C++中的类/类成员函数说明.cpp
0 → 100644
浏览文件 @
53b4dbf7
//1.成员函数说明
/*
* acquire()函数管理对某个公司股票的首次购买,
而 buy( )和 sell()管理增加或减少持有的股票。
方法buy( )和 sell()确保买入或卖出的股数不为负。
另外,如果用户试图卖出超过他持有的股票数量,
则 sell()函数将结束这次交易。
这种使数据私有并限于对公有函数访问的技术允许我们能够控制数据如何被使用;
在这个例子中,它允许我们加入这些安全防护措施,避免不适当的交易。
4个成员函数设置或重新设置了total_val成员值。
这个类并非将计算代码编写4次,而是让每个函数都调用set_tot()函数。
由于set_tot()只是实现代码的一种方式,而不是公有接口的组成部分,
因此这个类将其声明为私有成员函数(即编写这个类的人可以使用它,但编写代码来使用这个类的人不能使用)。
如果计算代码很长,则这种方法还可以省去许多输入代码的工作,并可节省空间。
然而,这种方法的主要价值在于,通过使用函数调用,而不是每次重新输入计算代码,
*/
//2.内联方法
//其定义位于类声明中的函数都将自动成为内联函数,
//因此Stock:set_tot( )是一个内联函数。
//类声明常将短小的成员函数作为内联函数,set_tot()符合这样的要求。
//也可以在类声明之外定义成员函数,并使其成为内联函数。
//为此,只需在类实现部分中定义函数时使用inline限定符即可:
//例子如下所示:
class
Stock
//class declaration
{
private:
void
set_tot
();
//definition kept separate
public:
};
inline
void
Stock
::
set_tot
()
//use inline in definition
{
total_val
=
shares
*
share_val
;
}
//内联函数的特殊规则:
/*
* 内联函数的特殊规则要求在每个使用它们的文件中都对其进行定义。
确保内联定义对多文件程序中的所有文件都可用的、
最简便的方法是:将内联定义放在定义类的头文件中
(有些开发系统包含智能链接程序,允许将内联定义放在一个独立的实现文件)。
*/
//3.方法使用哪个对象
//下面介绍使用对象时最重要的一个方面:如何将类方法应用于对象。
//下面的代码使用了一个对象的shares 成员:
shares
+=
num
;
//创建类变量
Stock
kate
,
joe
;
//通过成员运算符使用对象的成员函数
kate
.
show
();
//the kate object calls the member function
joe
.
show
();
//the joe object calls the member function
/*
* 所创建的每个新对象都有自己的存储空间,
用于存储其内部变量和类成员;
但同一个类的所有对象共享同一组类方法,即每种方法只有一个副本。
例如,假设kate和 joe 都是Stock 对象,
则kate.shares将占据一个内存块,而joe.shares占用另一个内存块,
但 kate.show()和joe.show()都调用同一个方法,
也就是说,它们将执行同一个代码块,只是将这些代码用于不同的数据。
在面向对象(OOP)中,调用成员函数被称为发送消息,
因此将同样的消息发送给两个不同的对象
*/
\ No newline at end of file
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录