CPlusPlusThings/practical_exercises/key_exercises/io_operator_overload.cpp

44 lines
1.2 KiB
C++
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/* 输入输出运算符重载.cpp */
/*
有一销售人员类Sales其数据成员有姓名name身份证号id年龄age。
重载输入/输出运算符实现对Sales类数据成员的输入和输出。
*/
#include <cstring>
#include <iostream>
using namespace std;
class Sales {
private:
char name[10];
char id[18];
int age;
public:
Sales(char *Name, char *ID, int Age);
friend Sales &operator<<(ostream &os, Sales &s); //重载输出运算符
friend Sales &operator>>(istream &is, Sales &s); //重载输入运算符
};
Sales::Sales(char *Name, char *ID, int Age) {
strcpy(name, Name);
strcpy(id, ID);
age = Age;
}
Sales &operator<<(ostream &os, Sales &s) {
os << s.name << "\t"; //输出姓名
os << s.id << "\t"; //输出身份证号
os << s.age << endl; //输出年龄
return s;
}
Sales &operator>>(istream &is, Sales &s) {
cout << "输入雇员的姓名,身份证号,年龄" << endl;
is >> s.name >> s.id >> s.age;
return s;
}
int main() {
Sales s1("杜康", "214198012111711", 40); // L1
cout << s1; // L2
cout << endl; // L3
cin >> s1; // L4
cout << s1; // L5
}