通过对象访问成员函数
Accessing a member function through an object
所以我有两个类,比如class A
和class B
。在类B的构造函数中,我创建了一个类型为A(private)的对象。在类A中,我有一个成员函数,它显示A的内容void displayA()
。
现在我运行int main()
,创建一个类型为B的对象(理想情况下也是存储在B中的类型为A的对象)。我的问题是如何使用A到B中的方法?
我试过objB.displayA()
,但显然没用。我需要在B中创建一个调用a中成员函数的成员函数吗?或者有没有更优雅的解决方案
class B
必须具有类型为class A
的成员变量。例如:
class B
{
public:
A a;
int x;
};
然后你可以这样称呼它:
B objB;
objB.a.displayA();
您需要将要更改的class A
的实例传递给objB
,然后在传递该实例的函数内部调用obA.displayA();
,或者您可以将objA
创建为objB
的类变量,然后在B的任何函数中调用objA.displayA();
首先,你没有公共和私人吗?你在B类中,是不是有一个类型为A类的变量;像这个
#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 中
相关文章:
- 对RValue对象调用的LValue ref限定成员函数
- 为什么使用 "this" 指针调用派生成员函数?
- 将公共但非静态的成员函数与ALGLIB集成
- 使用指向成员的指针将成员函数作为参数传递
- 将重载的成员函数传递给函数模板
- 我不小心调用了一个没有自己类对象的成员函数.但这是怎么回事呢
- 如何在C++中使用非静态成员函数作为回调函数
- C++错误C2600:无法定义编译器生成的特殊成员函数(必须首先在类中声明)
- 关联容器的下界复杂性:成员函数与非成员函数
- 在 C++ 中用派生类型重写成员函数
- 链表的泛型函数remove()与成员函数remove)
- 如何将lambda作为模板类的成员函数参数
- constexpr构造函数需要常量成员函数时出现问题
- 将自由函数绑定为类成员函数
- 区分非成员函数和头文件中的成员函数
- 如何从子成员函数修改父公共成员变量
- 保留对其他类的成员函数的引用
- 在运算符重载定义中使用成员函数(const错误)
- 内联如何影响模块接口中的成员函数
- 将成员函数指针作为参数传递给模板方法