该ostream & operator<<(ostream &os, A &A0)
函数正在生成警告。
这是该类的定义方式:
class A
{
public:
friend ostream & operator<<(ostream &os, A &A0);
A& operator=(string strSlot_);
A& operator+(string strSlot_);
A& operator+(const A &B);
A& operator=(const A &B);
string slotReturn();
A(string strSlot_);
A(const A &object);
void slotChange();
void sCout();
~A();
A();
private:
string strSlot;
int n;
};
ostream & operator<<(ostream &os, A &A0)
{
os << "strSlot = \"" << A0.slotReturn() << "\"" << endl;
}
string A::slotReturn()
{
return strSlot;
}
问题是,它应该返回什么?*this
似乎不起作用(因为它是一个friend
?)。(这只是一个警告,但我还是想知道。)
另外,为什么我不能A &A0
作为 const 传递(在这种情况下,错误是:“将 'const A' 作为 'std::string A::slotReturn()' 的 'this' 参数传递会丢弃限定符”)?