频道栏目
读书频道 > 软件开发 > C++ > C++ Primer中文版(第5版)
1.5.2 初识成员函数
2013-09-07 11:43:29     我来说两句
收藏   我要投稿

本文所属图书 > C++ Primer中文版(第5版)

这本久负盛名的 C++经典教程,时隔八年之久,终迎来史无前例的重大升级。除令全球无数程序员从中受益,甚至为之迷醉的——C++ 大师 Stanley B. Lippman 的丰富实践经验,C++标准委员会原负责人 Jos&eacut...  立即去当当网订购

将两个Sales_item对象相加的程序首先应该检查两个对象是否具有相同的ISBN。方法如下:

#include <iostream>

#include "Sales_item.h"

int main()

{

    Sales_item item1, item2;

    std::cin >> item1 >> item2;

    // 首先检查item1和item2是否表示相同的书

    if (item1.isbn() == item2.isbn()) {

        std::cout << item1 + item2 << std::endl;

        return 0;   // 表示成功

    } else {

    std::cerr << "Data must refer to same ISBN"

               << std::endl;

    return -1;      // 表示失败

    }

}

此程序与上一版本的差别是if语句及其else分支。即使不了解这个if语句的检测条件,我们也很容易理解这个程序在干什么。如果条件成立,如上一版本一样,程序打印计算结果,并返回0,表明成功。如果条件失败,我们执行跟在else之后的语句块,打印一条错误信息,并返回一个错误标识。

什么是成员函数?

这个if语句的检测条件

item1.isbn() == item2.isbn()

调用名为isbn的成员函数(member function)。成员函数是定义为类的一部分的函数,有时也被称为方法(method)。

我们通常以一个类对象的名义来调用成员函数。例如,上面相等表达式左侧运算对象的第一部分

item1.isbn()

使用点运算符(.)来表达我们需要“名为item1的对象的isbn成员”。点运算符只能用于类类型的对象。其左侧运算对象必须是一个类类型的对象,右侧运算对象必须是该类型的一个成员名,运算结果为右侧运算对象指定的成员。

当用点运算符访问一个成员函数时,通常我们是想(效果也确实是)调用该函数。我们使用调用运算符(())来调用一个函数。调用运算符是一对圆括号,里面放置实参(argument)列表(可能为空)。成员函数isbn并不接受参数。因此

item1.isbn()

调用名为item1的对象的成员函数isbn,此函数返回item1中保存的ISBN书号。

在这个if条件中,相等运算符的右侧运算对象也是这样执行的——它返回保存在item2中的ISBN书号。如果ISBN相同,条件为真,否则为假。

1.5.2节练习

练习1.23:编写程序,读取多条销售记录,并统计每个ISBN(每本书)有几条销售记录。

练习1.24:输入表示多个ISBN的多条销售记录来测试上一个程序,每个ISBN的记录应该聚在一起。

您对本文章有什么意见或着疑问吗?请到论坛讨论您的关注和建议是我们前行的参考和动力  
上一篇:1.5.1节练习
下一篇:1.6 书店程序
相关文章
图文推荐
排行
热门
最新书评
特别推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站