Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Class C++;流/类模板/实例 我是一个新的C++学生,对蒸汽输入/输出有很强的理解能力。_Class_Templates_Stream_Instance - Fatal编程技术网

Class C++;流/类模板/实例 我是一个新的C++学生,对蒸汽输入/输出有很强的理解能力。

Class C++;流/类模板/实例 我是一个新的C++学生,对蒸汽输入/输出有很强的理解能力。,class,templates,stream,instance,Class,Templates,Stream,Instance,我实际上是在从一本书中学习,我发现下面的几行让我困惑 “iostream库提供了许多用于处理常见I/O操作的模板。例如,类模板basic_ostream支持流输出操作…” 那么这是否意味着基本团队被定义为: template <class basic_ostream> 这意味着cout实际上是一个类对象,而不是一个类的实例。 我只是混淆了“实例”的定义吗 请帮忙 涉及的模板参数处理从流中读取/写入的字符类型 cout(和cin、cerr、clog)类似于: namespace st

我实际上是在从一本书中学习,我发现下面的几行让我困惑

“iostream库提供了许多用于处理常见I/O操作的模板。例如,类模板basic_ostream支持流输出操作…”

那么这是否意味着基本团队被定义为:

template <class basic_ostream>
这意味着cout实际上是一个类对象,而不是一个类的实例。 我只是混淆了“实例”的定义吗
请帮忙

涉及的模板参数处理从流中读取/写入的字符类型

cout(和cin、cerr、clog)类似于:

namespace std { 
    basic_ostream<char> cout;
    basic_ostream<char> cerr;
    basic_ostream<char> clog;
    basic_istream<char> cin;
}
namespace std{
基本团队能力;
基础研究中心;
基本的蒸汽阻塞;
基本流cin;
}
还有一些版本可以读取和写入宽字符:

namespace std {
    basic_ostream<wchar_t> wcout;
    basic_ostream<wchar_t> wcerr;
    basic_ostream<wchar_t> wclog;
    basic_istream<wchar_t> wcin;
}
名称空间std{
基本团队输出;
基本的_ostreamwcerr;
basic_ostream wclog;
基本流wcin;
}
因此,这些标准流中的每一个都是一个类的实例,其中该类是从该流读取/写入的字符类型上的模板的实例化


值得一提的是,还有一点:另一种类型称为
std::ios_base::Init
,它在
main
开始执行之前创建这些实例,并在
main
完成执行之后销毁它们。

首先,感谢您的响应!;)我还没有掌握这个概念。所以,在“namespace std{}”中会有一个处理流的类,在这个类中,会出现cout、cerr、clog和cin吗?或者你是说cout、cerr、clog和cin本身就是课程?如果是这样的话,为什么没有“class”关键字?@GrinNare:没有——cin、cout、clog和cerr都是对象——类的实例。所以。。。cout将是接受char或wchar\t值的类basic_ostream的对象?我说的对吗?@GrinNare:对不起,我这方面的想法很愚蠢,这篇文章有误导性的信息
cout
是类
basic_ostream
的对象,在
char
上实例化
wcout
本质上是相同的,但在
wchar\u t
上实例化(宽字符)。实际上我还有一个问题。这个“流”存储在哪里?它保存在堆栈还是堆中?所以用户>键盘>堆栈(或堆)中的流>cin读取>程序???
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;
}