C++ Primer 第三版:深入探索ISO标准化后的C++语言

需积分: 48 185 下载量 153 浏览量 更新于2024-08-10 收藏 4.41MB PDF 举报
"C++ PREMIER" 本文段落摘自《C++ Primer》第三版的中文版,该书由Stanley B. Lippman和Josée Lajoie合作撰写,并由潘爱民、张丽翻译。书中探讨了C++编程语言的复杂性和其在编程领域的地位,强调了C++作为一门既有深厚历史又具现代标准的语言的特点。在这一部分,作者通过一个关于类层次结构的例子,展示了如何使用继承和子类型来构建类结构。 在C++中,类继承是一种机制,允许创建一个新类(派生类)作为现有类(基类)的扩展。在这个例子中,`BinaryQuery`类被设计为`Query`类的派生类,用于处理二元查询操作。`BinaryQuery`包含两个指针成员`_lop`和`_rop`,分别指向两个`Query`对象,代表查询的左右部分。`lop()`和`rop()`方法提供对这些成员的访问,它们被声明为非静态内联成员函数,以便提高效率。 接着,`OrQuery`和`AndQuery`类进一步继承自`BinaryQuery`,它们都声明了一个虚函数`eval()`,这是为了实现特定的查询评估逻辑。然而,这里指出这两个类的定义是不完整的,因为它们没有提供自己的构造函数。虽然编译器允许这样的定义通过,但在尝试创建`AndQuery`对象时,会因缺少构造函数而引发错误。 这个例子突出了在C++中正确设计类层次结构的重要性,包括理解何时使用继承、访问修饰符(如`public`和`protected`)、以及如何实现虚函数以支持多态性。C++的面向对象特性使得代码可以更加模块化和可重用,但同时也需要开发者对语言细节有深入的理解,以避免潜在的错误和陷阱。 此外,书中提到C++在1998年被ISO标准化,这意味着所有遵循标准的编译器都应该能够生成兼容的代码,这对于编写可移植的C++程序至关重要。C++标准库的引入也为开发人员提供了强大的工具和接口,简化了开发过程。 《C++ Primer》第三版通过具体的示例和详细的解释,帮助读者深入理解C++语言的核心概念和最佳实践,无论对于初学者还是有经验的开发者,都是一个宝贵的资源。这本书不仅介绍了语言语法,还涵盖了C++的设计哲学和标准库的使用,有助于读者全面掌握C++这一复杂的编程语言。