前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >EasyC++57,类的实现

EasyC++57,类的实现

作者头像
TechFlow-承志
发布2022-08-26 17:23:28
1460
发布2022-08-26 17:23:28
举报
文章被收录于专栏:TechFlow

作者 | 梁唐

大家好,我是梁唐。

这是EasyC++系列的第57篇,类的实现。

类的实现

当我们完成了类定义之后, 还需要来实现类当中的函数。

比如我们在stock00.h当中定义了一个类:

代码语言:javascript
复制
#ifndef STOCK00_H_
#define STOCK00_H_

#include <string>

class Stock {
    private:
     std::string company;
     long shares;
     double share_val;
     double total_val;
     void set_tot() {total_val = shares * share_val;}
    public:
     void accquire(const std::string &co, long n, double pr);
     void buy(long num, double price);
     void sell(long num, double price);
     void update(double price);
     void show();
};
#endif

成员函数

在这个定义当中,我们只是声明了函数,并没有具体实现函数的逻辑。

我们通常会在同名的cpp文件当中实现,实现的时候,需要使用作用域解析运算符来表示函数所属的类:

代码语言:javascript
复制
void Stock::update(double price) {
    ...
}

这样就表明了update函数所属Stock这个类,这也就意味着我们可以创建属于其他类的同名函数:

代码语言:javascript
复制
void Buffoon::update() {
    ...
}

其次,我们在成员函数当中,可以访问private限定的成员变量。比如说在show函数当中,我们可以这样实现:

代码语言:javascript
复制
void Stock::show() {
    std::cout << company << shares << share_val << total_val << endl;
}

虽然company,shares都是类的私有成员,但在成员方法当中,一样可以正常访问。

再次,我们在成员方法当中调用另外一个成员方法,可以不需要解析运算符。比如我们要在show函数内调用update函数,直接使用update()即可,而无需前面的Stock::

内联函数

我们再回过头来看一下Stock这个类的定义,在类的定义当中,有一个叫做set_tot的函数。我们直接在类当中实现了逻辑。虽然同样是成员函数,但是在类当中直接实现的函数是有所区别的。在类声明当中实现的函数,会被视为是内联函数。

一般我们会把一些比较简短的函数在类的声明当中直接实现,当然我们也可以使用关键字inline,手动指定某个函数是内联的。

代码语言:javascript
复制
class Stock {
    private:
    void set_tot();
    public:
    ...
};

inline void Stock::set_tot() {
    total_val = shares * share_val;
}
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-12-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Coder梁 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 类的实现
    • 成员函数
      • 内联函数
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档