派生类和基类之间指针指针的转换?
关于下面的C ++程序:
class Base { }; class Child : public Base { }; int main() { // Normal: using child as base is allowed Child *c = new Child(); Base *b = c; // Double pointers: apparently can't use Child** as Base** Child **cc = &c; Base **bb = cc; return 0; } GCC在最后的赋值语句上产生以下错误:
 error: invalid conversion from 'Child**' to 'Base**' 
我的问题分两部分:
- 为什么没有从Child **到Base **的隐式转换?
-  我可以使这个例子使用C风格的转换或reinterpret_cast。 使用这些铸件意味着扔掉所有types的安全。 有没有什么我可以添加到类定义,使这些指针隐式static_cast转换,或至less短语转换的方式,使我可以使用static_cast?
如果这是允许的,你可以这样写:
 *bb = new Base; 
 而c最终会指向Base一个实例。 坏。