我正在用Python编写脚本,但是当我尝试运行它时会出现一个十字光标并让我截取屏幕截图.但这不是我程序的一部分,脚本的其余部分根本不会执行!
产生此行为的最小代码是:
import fiona
import scipy
Run Code Online (Sandbox Code Playgroud) 我正在尝试使一个类继承自其他类并重写一些方法.类'标题'是:
class Objeto {
public:
virtual bool interseca(const Rayo &rayo, float magnitud);
virtual bool breakNormal(const Punto &punto);
virtual Vector normal(const Punto &punto);
int idMaterial;
};
class Esfera: public Objeto {
public:
int idMaterial;
virtual bool interseca(const Rayo &rayo, float magnitud);
// etc
};
Run Code Online (Sandbox Code Playgroud)
接下来在程序的其他地方(Objeto和Esfera之外)我做:
// ObjectList is a Vector<Objeto>
Objeto o = esfera; /* Where esfera is a valid Esfera object */
ObjectList[0] = o;
ObjectList[0].interseca(rayo, magnitud);
Run Code Online (Sandbox Code Playgroud)
我想要的interseca是在Esfera中调用它的新版本.通过这种方式,我可以添加更多对象(立方体,三角形等)并将它们视为通用的"Objetos".
而不是Esfera实现interseca的程序调用Objeto::interseca.
使用C++进行覆盖的正确方法是什么?这是覆盖的方式,我错过了什么,或者我是完全错的?任何提示或替代方法吗?