定义运算符重载函数名的步骤

全局函数、类成员函数方法实现运算符重载步骤

        1)要承认操作符重载是一个函数,写出函数名称operator+ ()

        2)根据操作数,写出函数参数

        3)根据业务,完善函数返回值(看函数是返回引用 还是指针 元素),及实现函数业务

友元函数实现操作符重载的应用场景

1)友元函数和成员函数选择方法

  • 当无法修改左操作数的类时,使用全局函数进行重载
  • =, [], ()和->操作符只能通过成员函数进行重载

 

2)用友元函数 重载 << >>操作符

  • istream 和 ostream 是 C++ 的预定义流类
  • cin 是 istream 的对象,cout 是 ostream 的对象
  • 运算符 << 由ostream 重载为插入操作,用于输出基本类型数据
  • 运算符 >> 由 istream 重载为提取操作,用于输入基本类型数据
  • 用友员函数重载 << 和 >> ,输出和输入用户自定义的数据类型
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,下面是关于成员函数和友元函数定义运算符重载和虚函数的使用的实验分析或总结。 1. 成员函数和友元函数定义运算符重载 运算符重载是C++语言中的一个强大特性,它允许我们对已有的运算符进行重新定义,以适应自己的需求。C++中的运算符重载可以使用成员函数或者友元函数来实现。 使用成员函数定义运算符重载的语法为: ``` 返回类型 operator 运算符(参数列表) { // 运算符重载的具体实现 } ``` 例如,如果我们想要对“+”运算符进行重载,可以这样写: ``` class Number { public: Number operator+(Number const &obj) { Number result; result.a = a + obj.a; result.b = b + obj.b; return result; } private: int a, b; }; ``` 使用友元函数定义运算符重载的语法为: ``` friend 返回类型 operator 运算符(参数列表); ``` 例如,如果我们想要对“<<”运算符进行重载,可以这样写: ``` class Number { friend ostream& operator<<(ostream& os, const Number& obj); private: int a, b; }; ostream& operator<<(ostream& os, const Number& obj) { os << obj.a << " + i" << obj.b; return os; } ``` 2. 虚函数的使用 虚函数是C++中的一个重要概念,它允许在基类中定义一个函数,在派生类中对该函数进行重新定义,实现多态性。虚函数的使用需要遵循以下几个步骤: (1)在基类中声明虚函数,语法为: ``` virtual 返回类型 函数(参数列表); ``` (2)在派生类中重新定义函数,语法为: ``` 返回类型 函数(参数列表) { // 派生类对虚函数的具体实现 } ``` 例如,我们可以定义一个基类Shape,包含一个虚函数area(),然后定义两个派生类Circle和Rectangle,分别重新定义area()函数: ``` class Shape { public: virtual double area() = 0; // 纯虚函数 }; class Circle : public Shape { public: Circle(double r) : radius(r) {} double area() { return 3.14 * radius * radius; } private: double radius; }; class Rectangle : public Shape { public: Rectangle(double l, double w) : length(l), width(w) {} double area() { return length * width; } private: double length, width; }; ``` 使用虚函数的好处是可以在不同的派生类中实现不同的行为,同时保持基类指针指向派生类对象时的多态性。 以上是关于成员函数和友元函数定义运算符重载和虚函数的使用的实验分析或总结,希望能对您有所帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值