当前位置:嗨网首页>书籍在线阅读

01-使用类

  
选择背景色: 黄橙 洋红 淡粉 水蓝 草绿 白色 选择字体: 宋体 黑体 微软雅黑 楷体 选择字体大小: 恢复默认

第11章 使用类

202006118188ECC8.jpg 本章内容包括:

  • 运算符重载;
  • 友元函数;
  • 重载<<运算符,以便用于输出;
  • 状态成员;
  • 使用rand()生成随机值;
  • 类的自动转换和强制类型转换;
  • 类转换函数。

C++类特性丰富、复杂、功能强大。在第10章,您通过学习定义和使用简单的类,已踏上了面向对象编程之旅。通过定义用于表示对象的数据的类型以及(通过成员函数)定义可对数据执行的操作,您知道了类是如何定义数据类型的。我们还学习了两个特殊的成员函数——构造函数和析构函数,其作用是管理类对象的创建和删除。本章将进一步探讨类的特征,重点是类设计技术,而不是通用原理。您可能发现,本章介绍的一些特性很容易,而另一些很微妙。要更好地理解这些新特性,应使用这些示例进行练习。如果函数使用常规参数而不是引用参数,将发生什么情况呢?如果忽略了析构函数,又将发生什么情况呢?不要害怕犯错误,因为在解决问题的过程中学到的知识,比生搬硬套而不犯错误时要多得多(然而,不要认为所有的错误就都会让人增长见识)。这样,您将更全面地了解C++是如何工作的以及它可以为我们做哪些工作。

本章首先介绍运算符重载,它允许将标准C++运算符(如=和+)用于类对象。然后介绍友元,这种C++机制使得非成员函数可以访问私有数据。最后介绍如何命令C++对类执行自动类型转换。学习本章和第12章后,您将对类构造函数和类析构函数所起的作用有更深入的了解。另外,您还将知道开发和改进类设计时,需要执行的步骤。

学习C++的难点之一是需要记住大量的东西,但在拥有丰富的实践经验之前,根本不可能全部记住这些东西。从这种意义上说,学习C++就像学习功能复杂的字处理程序或电子制表程序一样。任何特性都不可怕,但多数人只掌握了那些经常使用的特性,如查找文本或设置为斜体等。您可能在那里曾经学过如何生成替换字符或者创建目录,除非经常使用它们,否则这些技能可能根本与日常工作无关。也许,学习本章知识的最好方法是,在我们自己开发的C++程序中使用其中的新特性。对这些新特性有了充分的认识后,就可以添加其他C++特性了。正如C++创始人Bjarne Stroustrup在一次C++专业程序员大会上所建议的:“轻松地使用这种语言。不要觉得必须使用所有的特性,不要在第一次学习时就试图使用所有的特性。”