C++ 重载输入运算符不能访问私有变量
2017-01-17 22:28
405 查看
#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++中类对象不能访问类的私有成员变量
- c++中类对象不能访问类的私有成员变量
- c++中类对象不能访问类的私有成员变量
- 《C++第九周实验报告1-1》--------接第8周任务1,定义Complex类中的<<和>>运算符的重载,实现输入和输出
- c++中不能重载的运算符
- C++私有成员变量被对象直接访问
- C++第九周【任务一】定义Complex类中的<<和>>运算符的重载,实现输入和输出
- C++对象中的私有成员变量可以被访问
- C++基础之访问const变量、访问私有变量and联合体(狗仔队)
- <C++>私有变量的访问权限
- c++中不能重载的运算符
- c++中不能重载的运算符
- C++中不能被重载的运算符
- C/C++日常学习总结(第三篇)不能重载的运算符和不同基类继承产生的二义性
- C++中有哪些运算符不能重载?
- C++中不能被重载的运算符介绍
- C++中不能重载的运算符
- More Effective C++ 阅读笔记(六)--哪些运算符不能重载
- C++对象访问私有变量释疑
- 第01章 CORE C++_C++ 基本结构_注释_输出语句_输入语句_初始化_条件控制_ASCII码值_转义字符_常量_变量_类型长度_运算符