【发布时间】:2013-07-29 19:28:19
【问题描述】:
在准备考试的时候遇到这个问题,希望有一个简短的解释。
如果我有一个class Object 和另一个:class Point : public Object
现在,如果我得到 Object& O1 和 Object& O2 ,但 Object 也可以是 Point ...
所以我的主要问题是如何检查它们是否都是Point 因为我需要访问Object 没有的字段
这是两个类:
类对象 {
public :
一些功能
};类点:公共对象{
双x;
双 y;
public:
相同的功能不同的实现
};
我想访问 x,y 但我需要先确保它是 Point。
提前致谢
【问题讨论】:
-
Object永远不能是Point。Object&可以是Point&(与(智能)指针相同)。 -
有没有办法确保我正在处理一个点而不是一个对象?我编辑了一个问题,我得到了 Object& O1...
-
dynamic_cast<Point*>(ptr)你在找什么... -
通常您不需要也不应该这样做。您可能需要
Object中的虚拟方法。弄清楚你为什么需要 x,y 并给它起个名字。
标签: c++ class inheritance c++11