c++

c++ class类成员函数如何重载

小樊
82
2024-09-24 23:45:18
栏目: 编程语言

在 C++ 中,可以通过在类中声明多个具有相同名称但参数列表不同的成员函数来重载它们。这种机制被称为函数重载(Function Overloading)。

以下是一个简单的示例,演示如何在 C++ 类中重载成员函数:

#include <iostream>
using namespace std;

class MyClass {
public:
    // 重载成员函数,接受两个 int 参数
    void foo(int a, int b) {
        cout << "foo(int, int): "<< a << ", "<< b << endl;
    }

    // 重载成员函数,接受一个 int 参数和一个 MyClass 引用参数
    void foo(int a, MyClass& obj) {
        cout << "foo(int, MyClass&): "<< a << ", " << obj.getValue() << endl;
    }

    // 重载成员函数,仅接受一个 MyClass 引用参数
    void foo(MyClass& obj) {
        cout << "foo(MyClass&): " << obj.getValue() << endl;
    }
};

class MyClass2 {
public:
    int getValue() {
        return 42;
    }
};

int main() {
    MyClass obj1;
    MyClass2 obj2;

    // 调用重载的成员函数
    obj1.foo(1, 2);          // 输出:foo(int, int): 1, 2
    obj1.foo(1, obj2);       // 输出:foo(int, MyClass&): 1, 42
    obj1.foo(obj2);          // 输出:foo(MyClass&): 42

    return 0;
}

在这个示例中,我们定义了一个名为 MyClass 的类,并在其中重载了三个名为 foo 的成员函数。这些函数的参数列表不同,因此它们被视为不同的函数。在 main 函数中,我们创建了一个 MyClass 对象和一个 MyClass2 对象,并调用了这些重载的成员函数。

0
看了该问题的人还看了