鱼C论坛

 找回密码
 立即注册
查看: 2105|回复: 4

c++类函数

[复制链接]
发表于 2014-5-18 14:30:26 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
代码很长其实很简单  请耐心  这是c++ primer plus  347  348页的东西stock00.h  /*头文件*/
#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 acquire(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

stock00.cpp /*源码文件*/
#include<iostream>
#include"stock00.h"

void Stock::acquire(const std::string & co, long n, double pr)
{
company = co;
if(n < 0)
{
std::cout << "Number of shares can't be negative; "
<< company << " shares set to 0.\n";
shares = 0;
}
else
{
shares = n;
}
share_val = pr;
set_tot();
}
void Stock::buy(long num, double price)
{
if(num < 0)
{
std::cout << "Number of shares purchased can't be negative. "
<< "Transaction is aborted.\n";
}
else
{
shares += num;
share_val = price;
set_tot();
}
}
void Stock::sell(long num, double price)
{
using std::cout;
if(num < 0)
{
cout << "Number of share sold cant be negative. "
<< "Transaction is aborted.\n";
}
else if(num > shares)
{
cout << "You can't sell more than you have! "
<< "Transaction is aborted.\n";
}
else
{
shares -= num;
share_val = price;
set_tot();
}
}

void Stock::update(double price)
{
share_val = price;
set_tot();
}

void Stock::show()
{
std::cout << "Company: " << company
<< " Shares: " << shares << '\n'
<< " Share Price: $" << share_val
<< " Total Worth: $" << total_val << '\n';

}

这个set_tot()应该是内联函数吧因为它在声明中定义了
那几干函数都用了set_tot()
这个set_tot的代码都被写入那几个函数了吗
可是书上说没有写入啊而是函数调用
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-5-18 22:59:03 | 显示全部楼层
这几个本身都是内联函数。(希望你懂我的意思)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-5-19 17:26:52 | 显示全部楼层
你的理解没错,set_tot()是内联函数,“调用内联函数”的意思就是调用内联函数替换后的代码。
此外,你的代码是书上抄的?void Stock::show()居然不是void Stock::show()const?这书按说不应该犯这种低级错误啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-5-21 08:01:10 | 显示全部楼层

还没有讲const函数下一节就有了  这是第一节
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-5-21 16:22:34 | 显示全部楼层
inline吗?现在好少看见这个关键字的使用了。因为编译器智能了就不用我们来自能了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-27 00:40

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表