【发布时间】:2020-08-28 18:52:55
【问题描述】:
我正在尝试创建一个函数来检查对象类型是否等于参数类型,如果是,则创建新对象。 我的班级层次结构:
class Copier: public Action
class CopierX: public Copier
所以我的功能是:
void Copier::checkequality(Action b) {
if (typeid(*this) == typeid(b))
{
Action b = new T x; //here at 'T' i want new type type(this)
}
}
只是我认为有必要提一下——这被提到是一个具有一些“默认值”的虚函数,所以还有另一个问题,它会像这样工作吗:
所以在这个CopierX,typeid(this) 将返回CopierX 类型对吗?然后,我想创建一些像Action b = new CopierX x; 一样工作的东西
如果我写得不好,我想说声抱歉,我对 C++ 还很陌生,我曾经在简单的 C 上工作过很多
【问题讨论】:
-
也许你想clone对象?
-
您将指针的类型与类对象的类型进行比较。它们永远不会相同。