【共读Primer】5.<1.5> 类简介 Page17
在类的使用之前我们需要了解的三件事情:
1. 类名是什么
2. 它在哪里定义的
3. 它提供了哪些操作
每一个类都是一个新的类型,类名就是类型的名称。
假设我们现在有一个类,名称是Sales_item, 这个类用来表示一本书的总销售额、售出册数、平均售价。
Sales_item item;
上方代码需要表达的意思就是一个对象item,它的类型是Sales_item
那么这个对象可以执行什么操作。
1. 可以调用isbn函数提取书号
2. 用输入输出运算符读写Sales_item对象
3. 使用等号可以将一个对象赋值给另外一个对象
4.使用加号可以将两个对象的数据相加(前提是两个对象表示相同的书)
5. 可以使用+=进行计算
先来看一下如何使用这个类型
1 #include <iostream> 2 #include "Sales_item.h" // 包含对应的类型头文件 这是老王家的信息,我们要去借刀 3 4 int main(int argc, char const *argv[]) 5 { 6 Sales_item book1, book2;// 声明两个对象,名称是book1和book2,类型都是Sales_item 7 std::cout << "Enter transactions:" << std::endl; 8 std::cin >> book1 >> book2;// 从输入流直接将信息写入book1,book2对象 9 std::cout << "Statistical result:\n" << book1 + book2 << std::endl; // 计算两个对象的统计结果并输出 10 return 0; 11 }
在上面的代码中我们看到对类型进行了声明的使用,输入以及输出的使用,下面是一个运行示例
在我们介绍这个类型的过程中还发现有一个isbn的方法,那么这个方法应该如何调用呢
我们来写一段示例代码,看一下如何对这个函数进行调用。
1 #include <iostream> 2 #include "Sales_item.h" // 包含对应的类型头文件 这是老王家的信息,我们要去借刀 3 4 int main(int argc, char const *argv[]) 5 { 6 Sales_item book1, book2;// 声明两个对象,名称是book1和book2,类型都是Sales_item 7 std::cout << "Enter transactions:" << std::endl; 8 std::cin >> book1 >> book2;// 从输入流直接将信息写入book1,book2对象 9 if(book1.ISBN() == book2.ISBN()) // 获取两本书的ISBN编号,看两个是否相等 10 { 11 std::cout << "Statistical result:\n" << book1 + book2 << std::endl; // 计算两个对象的统计结果并输出 12 return 0; 13 } 14 else 15 { 16 std::cerr << "Data must refer to same ISBN" << std::endl; 17 return -1; 18 } 19 }
初学者肯定对这一大堆东西感到无力。
不过没有关系,这些语法以及语言特性严格来说应该已经涵盖到本书一小半的内容了,所以不用害怕。
C++只是提前展示了一下它自己的特色。
特别提示:
本次编译过程中使用道德Sales_item文件并没有在这里贴出来,请大家不要尝试直接编译。
因为这个文件涉及到的C++特性非常多。
所以我会单独有一篇文章进行讲解,当然是以一个有经验的开发者视角来讲解这段代码
文章地址 https://www.cnblogs.com/ChattyKu/p/9400098.html
如果有需要编译的同学,请在讲解文章内复制这段代码
上一篇: BZOJ3670: [Noi2014]动物园(KMP)
下一篇: QT解析和组装json