#include<iostream>
using namespace std;
#include<vector>
#include<string>
class Student
{
public:
Student(void) = default;
Student(int num, string name):
number(num),
name(name)
{ } ;
void SetNumber(int t)
{
number = t;
}
void SetName(string s)
{
name = s;
}
int getNumber(void) const //成员函数
{
return number;
}
string getName(void) const //成员函数
{
return name;
}
Student& operator+(Student& item)
{
this->number = this->number + item.number;
this->name = this->name + item.name;
return *this;
}
friend ostream& operator<<(ostream &os, const Student & item);
friend istream& operator>>(istream &os, const Student & item);
friend bool operator==(const Student &lhs, const Student &rhs);
private:
int number;
string name;
};
ostream& operator<<(ostream &os, const Student & item)
{
os << item.number<< item.name;
return os;
}
istream& operator>>(istream &is, Student & item)
{
// is >> item.number>>item.name;
return is;
}
bool operator==(const Student &lhs, const Student &rhs)
{
return lhs.name == rhs.name && lhs.number == rhs.number;
}
void main(void)
{
Student s1(1,"huang");
Student s2(2, "pi");
s1 = s1 + s2;
cout << s1 << endl;
bool res = s1 == s2;
printf("%d", res);
}
在学习C++ Primer的时候发现的问题(如题),网上也没有找到答案,mark下。
C++ 重载输入运算符不能访问私有变量
最新推荐文章于 2020-12-07 23:35:33 发布