|
#include<iostream>
using namespace std;
#include<string>
class person
{
public:
friend ostream& operator<<(ostream& cout, person &p);
person()
{
m_a = 0;
}
person operator++(int)
{
person temp = *this;
m_a++;
return temp;
}
person& operator++()
{
m_a++;
return *this;
}
private:
int m_a;
};
ostream& operator<<(ostream &cout, person &p)(此处改为ostream &cout, person p 就不会出现下面的问题了)
{
cout << p.m_a;
return cout;
}
void test1()
{
person p;
cout << ++p << endl;
}
void test2()
{
person p;
cout << p++<< endl;(错误原因:二元“<<”: 没有找到接受“person”类型的右操作数的运算符(或没有可接受的转换)
cout << p << endl;
}
int main()
{
test1();
test2();
return 0;
}
想请问上面错误的原因是什么 |
评分
-
查看全部评分
上一篇: 好奇mingw驱动开发,缺少wdm.h下一篇: windows编程问题,很奇怪
|