【发布时间】:2013-06-02 15:47:33
【问题描述】:
我有一个看起来像这样的类:
class A {
public:
A() {};
A& operator<< (A& a, unsigned int i);
private:
vector<int> abc;
}
我想提供使用运算符向abc 添加对象的功能:
A a();
a << 3,4,5; // should do the same as several calls of abc.push_back(i)
我知道我必须重载<< 运算符,我是否也必须重载, 运算符?
实际的方法会是什么样子?
【问题讨论】:
-
你就不能
a << 3 << 4 << 5吗? -
起初这也足够了。
,运算符可能是一个很好的练习。我仍然对如何实际实现此方法有疑问。最后我尝试了一些错误,告诉我invalid number of operands。 -
那是因为您将
operator <<设为成员函数并使其接受 2 个参数。如果将其设为成员,只需指定一个参数 (int),第一个参数是隐式的。否则,将其声明为接受 2 个参数的friend函数 -
是否有我们应该帮助您获胜的模糊 C++ 竞赛?
-
a << 3,4,5;的想法很难通过我的审查。即使只是
标签: c++ class operator-keyword