C++指针强制重载
基本问题是否有人知道在C++中的这种方法?第2类是Class1的子类,它必须保持这种状态。C++指针强制重载
Class1* a; Class2* b = (Class2*)a;
basically allowing you
Class1* a;
Class2* b = a;
// tried this but didn't seem to work
class Class1
{
operator Class2*() { return (Class2*)this; }
}
我真的无法找到任何东西,对不起,如果这是一个弱智的问题/复制,但并没有完全让我解决这个头。如果someoen有类似的东西,将不胜感激。
编辑:一些额外的信息 的Class1 =基类如球员 类2 =子类如武器
的Class1具有指向具有类似起源相同的价值观
球员有一个指针指向武器 子类基本我想要做的就是
GetEntity返回类型的球员的指针(但返回值也可以是武器)
基本上现在就是我想要做的就是像自动化
Player* p = GetEntity(0); Player* p2 = GetEntity(1);
Weapon wpn = (Weapon*)p2;
//so that you are able to do
Weapon wpn = p2;
// Also that Stuff like that would be possible
void Test(Weapon *wpn);
Player *player = GetEntity(1);
// Yes I know this works Test((Weapon*)player) but I am lazy and that's the goal
Test(player);
铸造它的过程,而不铸造它。
回答:
你想要达到的确切目标是无法完成的。原因是行Class2* b = a;
根本不处理类的类型,a
和b
都是内置指针类型。当所有操作数都是内置的非枚举类型时,无法引入操作的自定义行为。
以上是 C++指针强制重载 的全部内容, 来源链接: utcz.com/qa/262604.html