28.3 — 使用 ostream 和 ios 进行输出
在本节中,我们将探讨 iostream 输出类 (ostream) 的各个方面。插入运算符 插入运算符 (<<) 用于将信息放入输出流。C++ 为所有内置数据类型预定义了插入操作,您已经了解了如何…
在本节中,我们将探讨 iostream 输出类 (ostream) 的各个方面。插入运算符 插入运算符 (<<) 用于将信息放入输出流。C++ 为所有内置数据类型预定义了插入操作,您已经了解了如何…
iostream 库相当复杂——因此我们无法在本教程中完全涵盖它。但是,我们将向您展示最常用的功能。在本节中,我们将探讨输入类 (istream) 的各个方面。提取运算符 如…
输入和输出功能并非 C++ 核心语言的一部分,而是通过 C++ 标准库提供(因此位于 std 命名空间中)。在之前的课程中,您包含了 iostream 库头文件并使用了 cin 和 cout 对象来完成…
在之前的课程中,我们讨论了按值传递参数时,参数的副本会复制到函数参数中。对于基本类型(复制成本低),这很好。但对于类类型(如 std::string),复制通常成本高昂。我们可以避免创建…
命令行参数的必要性 如您在第 课中所知,当您编译和链接程序时,输出是一个可执行文件。当程序运行时,执行从名为 main() 的函数顶部开始。到目前为止,我们已经这样声明 main:int…
纯虚(抽象)函数和抽象基类 到目前为止,我们编写的所有虚函数都有一个函数体(定义)。但是,C++ 允许您创建一种特殊类型的虚函数,称为纯虚函数(或抽象函数),它完全没有函数体!一个…
考虑以下程序: #include <iostream> #include <string_view> class Base { public: std::string_view getName() const { return “Base”; } // 非虚 virtual std::string_view getNameVirtual() const { return “Base”; } // 虚 }; class Derived: public Base { public: std::string_view getName() const { return “Derived”; } virtual std::string_view getNameVirtual() const …
在本节和下一节中,我们将更仔细地研究虚函数是如何实现的。虽然这些信息对于有效使用虚函数并非严格必要,但它很有趣。尽管如此,您可以将这两节视为可选阅读。当 C++ 程序执行时,它…
虚析构函数 尽管如果您不提供析构函数,C++ 会为您的类提供一个默认析构函数,但有时您会希望提供自己的析构函数(特别是当类需要释放内存时)。如果您正在处理,您应该始终将析构函数设为虚函数…