我在实现一个母类的虚函数时遇到了一些问题:基本上我的代码是:
class Shape
{
public:
virtual ~Shape();
virtual bool Intersect (const Ray& ray, double& t) const =0;// to premit abstraktion (definition in sub-classes)
virtual Vector GetNormal(const Vector& at) const =0;
protected:
Color color;
double dc; //diffusive component
};
class Ball: public Shape
{
public:
Ball(const Color& col,const double diff,const double x,const double y,const double z,const double radius):
cx(x),cy(y),cz(z),r(radius)
{
Shape::color=col;
Shape::dc=diff;
assert(radius!=0);
}
virtual bool Intersect (const Ray& ray, double& t)
{
Vector c(cx,cy,cz), s(ray.xs,ray.ys,ray.zs);
Vector v(s-c);
double delta(std::pow(v*ray.dir,2)-v*v+r*r);
if(delta<0) …Run Code Online (Sandbox Code Playgroud)