C++中,一个类的成员函数调用另外一个类的成员函数的方法

C++中,一个类的成员函数调用另外一个类的成员函数的方法

通过对象实例调用:在当前类中持有另一个类的对象实例,然后通过该实例调用目标类的成员函数。通过指针或引用调用:在当前类中持有另一个类的指针或引用,然后通过该指针或引用调用目标类的成员函数。继承:如果类之间有继承关系,可以通过继承链调用基类的成员函数。1、 在当前类中持有另一个类的对象实例,然后通过该实例调用目标类的成员函数。

#include

class ClassB {

public:

void memberFunctionB() {

std::cout << "Called ClassB::memberFunctionB" << std::endl;

}

};

class ClassA {

private:

ClassB b; // 持有ClassB的对象实例

public:

void memberFunctionA() {

b.memberFunctionB(); // 通过对象实例调用

}

};

int main() {

ClassA a;

a.memberFunctionA(); // 输出:Called ClassB::memberFunctionB

return 0;

}

2、 在当前类中持有另一个类的指针或引用,然后通过该指针或引用调用目标类的成员函数

#include

class ClassB {

public:

void memberFunctionB() {

std::cout << "Called ClassB::memberFunctionB" << std::endl;

}

};

class ClassA {

private:

ClassB* bPtr; // 持有ClassB的指针

public:

ClassA(ClassB* b) : bPtr(b) {}

void memberFunctionA() {

bPtr->memberFunctionB(); // 通过指针调用

}

};

int main() {

ClassB b;

ClassA a(&b);

a.memberFunctionA(); // 输出:Called ClassB::memberFunctionB

return 0;

}

3、如果类之间有继承关系,可以通过继承链调用基类的成员函数

#include

class Base {

public:

void baseFunction() {

std::cout << "Called Base::baseFunction" << std::endl;

}

};

class Derived : public Base {

public:

void derivedFunction() {

baseFunction(); // 通过继承链调用基类成员函数

}

};

int main() {

Derived d;

d.derivedFunction(); // 输出:Called Base::baseFunction

return 0;

}

相关文章

嫲的解释

365体育ios 07-06

三国时期有哪些知名人物?三国人物知名度排名

365体育ios 07-05

2022世界杯赛程时间表

假的365不让提款怎么办 07-04

十字花科蔬菜有哪些?抗癌功效報你知!除了花椰菜還有這12種

365体育ios 07-09