卧龙小说网> > > 1.5.2 初识成员函数

1.5.2 初识成员函数

1.5.2 初识成员函数

1.5.2 初识成员函数

将两个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相同,条件为真,否则为假。


普通的冒险故事提示您:看后求收藏(卧龙小说网http://www.wolongxs.com),接着再看更方便。

好书推荐:《我的剧本世界在自主运行》《我是舰娘》《我的师妹是妖女》《交错世界之学院都市》《认清现实后,她们开始追夫火葬场》《好徒儿你就饶了为师伐》

目录