在c++中,类A含有成员对象b,b如何调用类A的非静态成员函数
时间: 2024-03-10 19:51:21 浏览: 23
在 C++ 中,类 A 含有成员对象 b,b 可以通过指向 A 对象的指针或引用来调用 A 的非静态成员函数。例如,假设 A 的非静态成员函数为 `func()`,A 的成员对象为 b,则可以通过以下两种方式调用:
1. 使用指向 A 对象的指针调用 A 的非静态成员函数:
```
class B {
public:
void func() { /* ... */ }
};
class A {
public:
B b;
void funcA() { /* ... */ }
};
A obj;
A* ptr = &obj;
obj.funcA(); // 直接调用 A 的成员函数
obj.b.func(); // 直接调用 B 的成员函数
ptr->funcA(); // 使用指针调用 A 的成员函数
ptr->b.func(); // 使用指针调用 B 的成员函数
```
2. 使用引用调用 A 的非静态成员函数:
```
class B {
public:
void func() { /* ... */ }
};
class A {
public:
B b;
void funcA() { /* ... */ }
};
A obj;
A& ref = obj;
obj.funcA(); // 直接调用 A 的成员函数
obj.b.func(); // 直接调用 B 的成员函数
ref.funcA(); // 使用引用调用 A 的成员函数
ref.b.func(); // 使用引用调用 B 的成员函数
```