在定义左移运算符重载时的问题
#include<iostream>
using namespace std;
class Person
{
public:
friend ostream& operator<<(ostream& cout, Person& p);
Person(int num1, int num2)
{
m_A = num1;
m_B = num2;
}
//一般不会利用成员函数重载<<,因为无法实现cout在左侧
//void operator<<(Person& p)相当于是p.operator<<(p)
//voidoperator<<(cout) p.operator<<(cout) 简化成 p<<cout
private:
int m_A;
int m_B;
};
ostream& operator<<(ostream &cout, Person &p)//本质operator<<(cout,p),简化cout<<p
{
cout << "m_A =" << p.m_A << "m_B =" << p.m_B;
return cout;
}
void test1()
{
Person p(10,20);
cout << p << endl;
}
int main()
{
test1();
system("pause");
return 0;
}
不清楚这个第20行的第一个ostream后边为啥要加个取址符,是因为operator是个操作不是个值吗?