【发布时间】:2019-06-05 15:49:10
【问题描述】:
我可以简单地将父结构转换为 c++ 中的子结构吗?
我尝试投射:
Base s;
Child tmp = (Child)s;
并得到这个错误: 来自...的 C 风格转换没有匹配的转换
谁能帮我解决这个错误?
【问题讨论】:
-
你可以,如果你声明了一个
Child::Child(Base const &)构造函数。不过,C 风格的演员表是不必要的,只需Child tmp(s);。 -
没有。孩子可能有基类中不存在的额外成员。他们的价值观从何而来?
-
"我可以简单地将父结构转换为 c++ 中的子结构吗?" 不可以。
s不是“子”。考虑向good C++ book学习。 -
我强烈建议查看c++ casting question C 风格的演员表非常危险。
-
你投错了方向,孩子是基地,但不是相反。可能你也想研究指针吗?