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;根本不处理类的类型,ab都是内置指针类型。当所有操作数都是内置的非枚举类型时,无法引入操作的自定义行为。

以上是 C++指针强制重载 的全部内容, 来源链接: utcz.com/qa/262604.html

回到顶部