【发布时间】:2011-12-05 21:00:02
【问题描述】:
我刚刚开始学习基本的 C++ 语法,我对遇到的一段代码有点困惑。
对于创建的名为 MyString 的类,有一个运算符重载定义为:
ostream& operator<<(ostream& os, const MyString& s)
{
os << s.data;
return os;
}
然后在一些驱动函数中声明:
cout << s3 << endl;
已运行,其中 s3 是对象类型 MyString。结果打印出 s3 的值。
我不太明白这个语句的作用。在弄乱它之后,似乎调用了一次复制构造函数,然后解构了 3 个对象。这条线究竟是如何工作的?似乎操作员接受对 ostream 和 MyString 的引用,但 endl 也不是吗?另外,当使用了两个“
【问题讨论】:
-
你在学习哪本书?
-
这个太笼统了,这里没法回答,你需要参考一本好书。
-
C++ Primer 第 4 版,作者 Lippman
-
你称之为基本的 c++ 语法?另外,刚开始学习 c++ 时重载运算符 :) ?
-
如果您希望我们说明
MyString实例有多少个副本,您需要提供更完整的代码示例。如果没有完整的示例,我们无法诊断此问题。