c++问题。关于调用类的对象成员的成员函数

来源:百度知道 编辑:UC知道 时间:2024/07/08 14:27:28
就是说我定义了一个2各类
class a{~~~~
void test();
};
class b {
a problem;
~~~
};
如何调用 test 函数?
是b::problem.test 吗?
还有如果我的b类中 动态申请了 a类的对象
如何调用。
是b::problem【2】->test吗?、

我们是选修课 都叫自己看的,看了大半本 但是有点搞混了

你的problem不是静态的不能通过类名调用,只能创建b类通过对象调用,而且a类的void test()须是公有的.
#include <iostream>

using namespace std;

class A {
public :
void test(){
cout<<"test A";
}
static void stest(){
cout<<"static test A";
}
};
class B {
public: void test(){
a.test();
}
public : A a;
static A sa;
};
int main()
{
B b;
b.test();
b.a.test();
B::sa.stest();
}
以上三种方法都正确,希望对你有用.

成员函数编译以后就是普通的函数,
比如Base的Print被改名为void Print_Base_xxxxx(Base* pBase);
那b->Print被转为Print_Base_xxxxx(NULL);

其实更激烈点的方式,比如Derived继承于Base,它实现了Print这个函数。
你在main里面调用
Derived* pDerived = NULL;
pDerived->Print;

再做一个假设,你想crack这个编译后的可执行程序。

你找个反汇编工具,看到函数调用call pt