C++ 流/class 模板/实例
C++ streams / class template / instance
我是一名新的 C++ 学生,很难理解 Steam input/output。
我实际上是在从一本书中学习,我发现下面几行让我很困惑。
"The iostream library provides many templates for handling common I/O operations. For example, class template basic_ostream supports stream-output operations..."
那么这是否意味着 basic_ostream 被定义为:
template <class basic_ostream>
在下一节中,我看到 "Predefined object cout is an ostream instance and is said to be " 行连接到“标准输出设备,通常是显示屏。”
所以根据以上陈述,我认为以下是正确的。
template <class basic_ostream>
class ostream {
basic_ostream cout ( "some value" );
}
这让我很困惑,因为在后面的章节中,本书开始讨论 put 函数作为...
cout.put('A');
这意味着 cout 实际上是一个 class 对象,而不是 class 的实例。
我只是混淆了 'instance?' 的定义吗
请帮忙!!!
涉及的模板参数处理读取 from/written 到流的字符类型。
cout(和 cin、cerr、clog)类似于:
namespace std {
basic_ostream<char> cout;
basic_ostream<char> cerr;
basic_ostream<char> clog;
basic_istream<char> cin;
}
还有读写宽字符的版本:
namespace std {
basic_ostream<wchar_t> wcout;
basic_ostream<wchar_t> wcerr;
basic_ostream<wchar_t> wclog;
basic_istream<wchar_t> wcin;
}
因此,这些标准流中的每一个都是 class 的一个实例,其中 class 是一个基于字符类型的模板实例化 from/written 到该流.
关于它的价值,还有一点:还有另一种类型称为 std::ios_base::Init
,它在 main
开始执行之前创建这些实例,并在 main
完成执行后的某个时间销毁它们。
我是一名新的 C++ 学生,很难理解 Steam input/output。
我实际上是在从一本书中学习,我发现下面几行让我很困惑。
"The iostream library provides many templates for handling common I/O operations. For example, class template basic_ostream supports stream-output operations..."
那么这是否意味着 basic_ostream 被定义为:
template <class basic_ostream>
在下一节中,我看到 "Predefined object cout is an ostream instance and is said to be " 行连接到“标准输出设备,通常是显示屏。”
所以根据以上陈述,我认为以下是正确的。
template <class basic_ostream>
class ostream {
basic_ostream cout ( "some value" );
}
这让我很困惑,因为在后面的章节中,本书开始讨论 put 函数作为...
cout.put('A');
这意味着 cout 实际上是一个 class 对象,而不是 class 的实例。 我只是混淆了 'instance?' 的定义吗 请帮忙!!!
涉及的模板参数处理读取 from/written 到流的字符类型。
cout(和 cin、cerr、clog)类似于:
namespace std {
basic_ostream<char> cout;
basic_ostream<char> cerr;
basic_ostream<char> clog;
basic_istream<char> cin;
}
还有读写宽字符的版本:
namespace std {
basic_ostream<wchar_t> wcout;
basic_ostream<wchar_t> wcerr;
basic_ostream<wchar_t> wclog;
basic_istream<wchar_t> wcin;
}
因此,这些标准流中的每一个都是 class 的一个实例,其中 class 是一个基于字符类型的模板实例化 from/written 到该流.
关于它的价值,还有一点:还有另一种类型称为 std::ios_base::Init
,它在 main
开始执行之前创建这些实例,并在 main
完成执行后的某个时间销毁它们。