所以我有两个课程,让我们说class A
和class B
。在B类的构造函数中,我创建了一个A类型的对象(私有)。在A类中,我有一个显示A,void displayA()
内容的成员函数。
现在我运行int main()
,我创建了一个B类对象(理想情况下也是存储在B中的A类对象)。我的问题是如何使用A到B中的方法?
我尝试objB.displayA()
,但这显然不起作用。我是否需要在B中创建一个成员函数来调用A中的成员函数?或者是否有更优雅的解决方案
答案 0 :(得分:2)
class B
必须具有class A
类型的成员变量。例如:
class B
{
public:
A a;
int x;
};
然后你可以这样称呼它:
B objB;
objB.a.displayA();
答案 1 :(得分:1)
您需要传递objB
您正在更改的class A
实例,然后在传递它的函数内,调用obA.displayA();
,或者您可以创建{{1} }}作为objA
的类变量,然后在B的任何函数中调用objB
。
答案 2 :(得分:1)
#include <iostream>
class A
{
public:
void displayA() {
std::cout << "call a" << std::endl;
}
};
class B
{
public:
B():a(){}
A a;
};
int main(int argc, const char *argv[])
{
B b;
b.a.displayA();
return 0;
}
而且B级也可以是:
`class B
{
public:
B():a(){}
A a;
void call() {
this -> a.displayA();
}
};`
然后调用B类中的call()