使用函数将抽象类从对象转换为指针

时间:2017-10-13 23:25:34

标签: c++

基本上我想将抽象类引用或对象转换为该对象的指针,我无法在互联网上找到任何东西。我知道我可以只做&对象但我想创建一个接受对象并返回指针的函数。例如: GameObject * convert(GameObject& object) 我需要一个功能,因为我有一个处理对象的lua脚本,所以我可以更容易地修改我的游戏。 提前谢谢。

1 个答案:

答案 0 :(得分:1)

。此功能在标准库中。它被称为std::addressof

它是在C ++ 11中引入的,所以如果您的标准库太旧,那么:

  

我知道我可以只做&对象

只需编写一个函数并使用那里的运算符地址,就像你知道的那样。 (这个简单的实现有一个警告,即addressof运算符可能会被重载而不返回地址。这可以避免,但我觉得这超出了我的答案范围。)

  

问题是GameObject是一个抽象类,所以它会给出一个错误:无法实例化抽象类。

获取GameObject的地址不是问题。这是创建GameObject实例的问题。除了作为基类子对象之外,您无法实例化抽象类的对象。