【发布时间】:2016-09-22 02:42:53
【问题描述】:
我有以下代码
#pragma once
#include "material.h"
#include "../Math/vector.h"
#include <cmath>
class LambertianMaterial : public Material
{
public:
LambertianMaterial(Vector rho);
Vector brdf(Vector wi) const
{
return mRho / M_PI; // Error here
}
private:
Vector mRho;
};
在与 brdf 的 return 语句对应的行中,我收到以下错误
Invalid operands to binary expression ('const Vector' and 'double')
在类向量中我已经声明了operator/ 像
Vector operator/(const float a);
我正在考虑重新定义方法
friend Vector operator/(const Vector& v, const float& a);
这是一种好方法吗,还是有一种方法可以使操作员的当前定义解决const Vector 的情况?
【问题讨论】:
标签: c++ operator-overloading constants