我们假设我们有一个类// header file
struct text
{
static const char* hello_world();
};
// one source file
// #include "text.hpp"
const char* text::hello_world() {
static const char _[] = "Hello, World";
return _;
}
// use case
// #include "text.hpp"
#include <iostream>
int main()
{
std::cout << text::hello_world() << std::endl;
}
,它有一个方法A
。我知道我可以使用void foo()
获取指向foo()
的指针,但是这个指针似乎只依赖于类类型,而不是实例化对象。如果我们有两个类型为&A::foo
的{{1}}和a1
对象,我们怎样才能在a2
A
方法与foo()
方法之间产生差异{1}}使用指针,成员函数指针,甚至指针地址?基本上,我希望能够获得一个引用a1
对象内部a2
方法的指针,该方法与引用void foo()
方法a1
方法的指针不同。 1}}。谢谢。
答案 0 :(得分:0)
我认为你不能让它们与众不同。 a1-&gt; foo()和a2-&gt; foo()基本相同。
答案 1 :(得分:0)
我认为你在这里混淆了对象(或类的实例)的概念。对象就像一个类的蓝图。 您不能为每个对象设置不同的成员/成员函数。
例如。
class A
{
int result;
public:
void add(int x, int y)
{
this->result = x + y;
}
}
A类的所有对象都将包含成员变量result和成员函数add()
。因此,obj1->add()
和obj2->add()
会调用相同的add()
函数,即使这些对象本身具有不同的属性。
obj1->add(1,2)
会导致obj1->result
3 ,而
obj2->add(1,3)
会导致obj2->result
4 。