基本上我想将抽象类引用或对象转换为该对象的指针,我无法在互联网上找到任何东西。我知道我可以只做&对象但我想创建一个接受对象并返回指针的函数。例如: GameObject * convert(GameObject& object) 我需要一个功能,因为我有一个处理对象的lua脚本,所以我可以更容易地修改我的游戏。 提前谢谢。
答案 0 :(得分:1)
。此功能在标准库中。它被称为std::addressof
。
它是在C ++ 11中引入的,所以如果您的标准库太旧,那么:
我知道我可以只做&对象
只需编写一个函数并使用那里的运算符地址,就像你知道的那样。 (这个简单的实现有一个警告,即addressof运算符可能会被重载而不返回地址。这可以避免,但我觉得这超出了我的答案范围。)
问题是GameObject是一个抽象类,所以它会给出一个错误:无法实例化抽象类。
获取GameObject
的地址不是问题。这是创建GameObject
实例的问题。除了作为基类子对象之外,您无法实例化抽象类的对象。