这一集我们简要介绍一下类这个知识点。
所谓的类,我们可以把它想象成一个内置的类型一样的物件,然后,和内置类型不同的点在于,类需要我们自己去设计和定义。
这一小节主要是让我们看一下如何简单地使用一个类。
Part1 Sales_item 类
那么,接下来接直接看代码,看一下如何简单地使用 Sales_item 这个类,
1#include <iostream>
2#include "Sales_item.h"
3
4int main()
5{
6 Sales_item book;
7
8 // read ISBN, number of copies sold, and sales price
9 std::cin >> book;
10 // write ISBN, number of copies sold, total revenue, and average price
11 std::cout << book << std::endl;
12
13 return 0;
14}
这里插一句,书中的代码也可以直接到配套网站去下载,
https://www.informit.com/store/c-plus-plus-primer-9780321714114
书上有些没有给出的代码,但是配套代码给出了,那么,对于这一部分,我们就去到配套代码那里给取过来。比如,我们这里的代码想要跑通,就得把 Sales_item.h 这个头文件给复制过来。
然后,是第二份代码,
1#include <iostream>
2#include "Sales_item.h"
3int main()
4{
5 Sales_item item1, item2;
6 std::cin >> item1 >> item2; // read a pair of transactions
7 std::cout << item1 + item2 << std::endl; // print their sum
8 return 0;
9}
按:关于书上提到的重定向操作,在 Windows 的命令行提示符和 Linux 系统的 shell 中,确实可以像下面这样,
1addItems < infile > outfile
但是,在 PowerShell 中,我们得用另一种语法,
1Get-Content .\input.txt | addItems.exe > .\output.txt
Part2 成员函数
然后,是成员函数的简单使用,
1#include <iostream>
2#include "Sales_item.h"
3int main()
4{
5 Sales_item item1, item2;
6 std::cin >> item1 >> item2;
7 // first check that item1 and item2 represent the same book
8 if (item1.isbn() == item2.isbn())
9 {
10 std::cout << item1 + item2 << std::endl;
11 return 0; // indicate success
12 }
13 else
14 {
15 std::cerr << "Data must refer to same ISBN" << std::endl;
16 return -1; // indicate failure
17 }
18}
19}