【发布时间】:2012-02-22 20:42:59
【问题描述】:
问题是如何在不触及 this 的情况下获取指向类内部方法的 self 的指针:
class Foo
{
int a, b, c;
void Print();
};
这种方式在通用编译器中我可以参考第一个数据字段:
void Foo::Print()
{
cout << &a; // == this
}
但是当只存在函数时,有没有什么方法可以在没有数据成员的情况下做到这一点?
class Foo2
{
void Print();
};
附言甚至不要问我为什么需要这个:)
【问题讨论】:
-
@JanKoester:或者更确切地说,
this指向的对象。 (毕竟,this是一个指针,而不是一个对象 :)) -
您仍在隐式使用
this。你的意思是你的源代码中不能有令牌this吗?th##is怎么样? -
@BenVoigt 这只是关于内存中类结构的理论:)
-
@Ockonal:不,编译器会将非静态成员的任何非限定用法转换为对
this的引用。如果您不相信我,请尝试在 lambda 中使用非静态成员而不捕获this。 -
@BenVoigt 你不理解我。