转化的问题
今天看侯捷的对象模型时候,打了一段代码,有问题
struct base1{int val1;};
struct base2{int val2;};
struct derived:base1,base2{};
void test1(int derived::* bmp, derived *pd)
{
printf("%d", pd->*bmp);
}
int main()
{
float farther::* fp = & farther::_x;
printf("%d", fp);
// cout << fp ;
int base2::*bmp = & base2::val2;
derived *ligang = new derived;
ligang->val2 = 100;
test1(bmp + sizeof(base1), ligang);
//这里VC6总是提时说操作符类型不匹配
delete ligang;
return 0;
}
我只是想在类成员的偏移位置上加上一个积累的距离,正常的指针不能直接加整数?!
我尝试乐静态和重解释转换,不可以阿,高手帮忙