我希望编写一个函数(或操作符,如果可能的话),它与Delphi的“is”类似。以下是Delphi示例:
因此,在C++ Builder中,这将是类似以下代码的形式:
if Sender is TMenuItem then
TMenuItem(Sender)->Enabled = false;
因此,在C++ Builder中,这将是类似以下代码的形式:
bool Is(*p1, *p2)
{
p = dynamic_cast<p1*>(p2); //here we typecast TObject to TMenuItem
if (!!p)
{
return true;
}
else return false;
}
我该如何使函数接受任何类型的p1,p2对象?
A
是否是B
的基类?如果是,可以考虑使用std::is_base_of
。如果您只是想接受任意类型,请查找模板。 - hlt