尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

c++--运算符重载和函数重载

c++--运算符重载和函数重载 目录1. 函数重载1.1 定义1.2 特点1.3 函数重写Function Overriding2.运算符重载运算符重载的基本概念1. 函数重载1.1 定义函数重载允许在同一个作用域中定义多个同名函数它们的参数列表必须不同。参数列表的不同可以通过参数的数量、类型或者顺序来区分。1.2 特点同名重载的函数名称相同。参数列表不同可以通过不同的参数数量、类型或顺序来区分。函数重载要求参数列表必须有区别。这可以通过以下方式实现参数顺序不同如一个函数接受(int, double)另一个接受(double, int)。参数类型不同如一个函数接受整数另一个接受浮点数。参数数量不同如一个函数有两个参数另一个有三个参数。返回类型无关返回类型不能用于区分重载只有参数列表才起作用。#include iostream using namespace std; // 实现逻辑的辅助函数 void printValue(int value) { cout 打印整数: value endl; } void printValue(double value) { cout 打印双精度数: value endl; } // 函数重载 void print(int a) { printValue(a); // 调用实现相同的辅助函数 } void print(double b) { printValue(b); // 调用实现相同的辅助函数 } int main() { print(10); // 调用 print(int) print(3.14); // 调用 print(double) return 0; }1.3 函数重写Function Overriding定义在派生类中重新定义基类中已经存在的虚函数具有相同的名称和参数列表。特征1.基类中的函数必须是虚函数使用 virtual 关键字。2.重写的函数与基类中的函数具有相同的签名。具有相同的名称和参数列表3.实现多态性通过基类指针或引用调用时可以根据对象类型选择调用相应的函数。2.运算符重载C 允许重载大部分内置运算符使得用户可以定义自定义类型如类的行为。当我们重载运算符时可以使用更自然的方式来处理对象之间的运算。运算符重载的基本概念本质都是这是给你自己定义的Vector类型重载运算符。“告诉编译器遇到这个符号和我的类一起出现时应该调用哪个函数。运算符重载函数运算符重载是通过定义特定名称的函数来实现的。函数名由关键字operator和运算符符号组成。例如要重载加法运算符函数名为operator。返回类型和参数列表与普通函数一样重载的运算符函数需要定义返回类型和参数列表。访问控制运算符重载函数可以是成员函数或非成员函数。成员函数通常用于操作对象的自身属性而非成员函数用于处理两个不同对象之间的操作。#include iostream using namespace std; class Vector { private: float x, y; public: Vector(float x 0, float y 0) : x(x), y(y) {} // 重载加法运算符 Vector operator(const Vector other) const {other 是一个初始化为 Vector型引用 return Vector(this-x other.x, this-y other.y); } void display() const { cout Vector( x , y ) endl; } }; int main() { Vector v1(1.0, 2.0); Vector v2(3.0, 4.0); Vector v3 v1 v2; // 使用重载的 运算符 v3.display(); // 输出: Vector(4, 6) return 0; }1.第一个const参数修饰符const Vector other:这里的const表示传入的other参数是一个常量引用constant reference。这意味着在operator方法的实现中不能修改other的值。2.第二个const成员函数修饰符const在函数后面:这个const关键字修饰了operator方法本身表示这个成员函数不会修改调用它的对象的任何数据成员。这意味着在operator方法内部不能更改当前对象即this指向的对象的状态。
返回列表