【发布时间】:2013-04-08 12:30:56
【问题描述】:
是否可以使用指向成员的指针访问复合类数据成员?以下代码无效,但证明了需要。
例如:
class A
{
public:
float fA;
};
class B
{
public:
float fB;
A a;
};
void test()
{
// Use of member pointer to access B::fB member
float B::*ptr = &B::fB; // -> OK
B myB;
myB.*ptr = 25.;
// Use of member pointer to access B::a.fA member ???
float B::*ptr2 = &B::a.fA; // -> ERROR
B myB.*ptr2 = 25.;
}
我已经在这里完成了我的问题:Pointer to composite class data member - Part 2
【问题讨论】:
-
你为什么要这样做?
-
@RogerRowland:你为什么这么问?
-
@6502 因为这是一个非常不寻常的问题,而且通常情况下,解决问题的方法完全不同。
-
这里没有子类。 B 的成员的成员不是 B 的成员,因此不能使用指向 B 的成员的指针访问。
-
@ArneMertz:我已经在这里完成了我的问题:link