【发布时间】:2016-03-09 16:31:42
【问题描述】:
据我了解(以及我的教科书所说),对象是一个自包含的编程元素,它包含数据和对该数据执行操作的过程。话虽如此,为什么像 cin、cout、string 等被视为对象? cin 是我定义的对象吗? cin 是在 iostream 头文件的源代码中找到的自包含单元的名称吗?它包含数据和对该数据执行操作的过程?
【问题讨论】:
-
std::string不是对象,它是std::basic_string<char>的类型别名。而std::basic_string是一个类。std::cin和std::cout分别是std::istream和std::ostream类的特殊实例。 -
错误假设 1:
string不被视为对象。错误假设 2:“考虑”,因为 C++ 标准精确定义了术语对象。 -
@alan 请注意,C++ 中的对象定义可能与其他语言中的定义不同,尤其是 OOP 语言。在 C++ 中,对象基本上是任何占用空间而不是函数的东西。