填空题
//运算符重载函数的显式和隐式调用方式#include "iostream"using namespace std;// 定义学生类class Stu{public:string m_no;string m_name;float m_grade;Stu(string no, string name, int grade){m_no = no;m_name = name;m_grade = grade;}// 1、定义成员函数,并用显式的函数调用来实现。float add(const Stu& s){return m_grade + s.m_grade;}//2、运算符重载,对现有的运算符重新进行定义,可用显式或隐式两种不同方式调用实现float operator+(const Stu& s){return m_grade + s.m_grade;}};// 定义主函数int main(){Stu s1("1001", "zhangsan", 90);Stu s2("1002", "wanglan", 80);// 1、定义成员函数,并用显式的函数调用来实现。cout << "s1.add(s2)=" << s1.add(s2) << endl;// 显式的函数调用//2、运算符重载,对现有的运算符重新进行定义,可用显式或隐式两种不同方式调用实现cout << "s1.operator+(s2)=" << s1.operator+(s2) << endl;// 显式的函数调用cout << "s1+s2=" << s1 + s2 << endl;// 隐式的函数调用return 0;}程序运行结果是:
填空题
//输入输出运算符重载#include "iostream"using namespace std;// 定义学生类class Stu{public:string m_no;string m_name;float m_grade;//重载关系运算符: ">"bool operator>(const Stu& s){if (this->m_grade > s.m_grade) return 1;else return 0;}//声明输入输出运算符重载函数,为Stu类的友元函数friend ostream& operator<< (ostream& os, const Stu& s);friend istream& operator>> (istream& is, Stu& s);};//重载输入输出运算符:"<<"和">>" ,因声明为Stu类的友元函数,所以可以访问Stu类对象的成员ostream& operator<< (ostream& os, const Stu& s) { //ostream& os,不能定义为常量,因为向流中写入数据时会改变流的状态os << s.m_name << " " << s.m_grade << endl; //输出Stu类对象的成员数据return os;}istream& operator>> (istream& is, Stu& s) { // 参数s是用来存放输入数据,所以不能定义为常量cout << "please input Stu's No Name and Grade: " << endl;is >> s.m_no >> s.m_name >> s.m_grade; //输入Stu类对象的成员数据return is;}// 定义主函数int main(){Stu s1,s2; //调用系统提供的默认无参构造函数cin >> s1;cin >> s2;if(s1>s2) cout << s1;else cout << s2;return 0;}运行上面的程序,并输入以下信息:1001 zhangsan 701002 liuli 90则程序的运行结果是:
套餐购买该问题答案仅对会员开放,欢迎开通会员 ¥ 19.9
0.64/天
1个月(不限次)
¥ 19.9
1000次
(不限时)
¥ 29.9
0.32/天
3个月(不限次)
¥ 59.9
0.16/天
1年(不限次)
立即支付