【发布时间】:2016-01-04 18:48:28
【问题描述】:
我想知道为什么在指针到成员转换的情况下,从派生类指针到基类指针的简单转换会失败。例如,
struct Base {};
struct Derived: public Base {};
struct X {
Derived field;
};
int main(int argc, char *argv[]) {
Base X::* ptr1 = &X::field;
return 0;
}
给出错误:
$ g++ t.cc
t.cc: In function ‘int main(int, char**)’:
t.cc:9:24: error: invalid conversion from ‘Derived X::*’ to ‘Base X::*’ [-fpermissive]
Base X::* ptr1 = &X::field;
^
【问题讨论】:
标签: c++ pointers pointer-to-member