标签:shared c object global-variables
我正在构建一个C项目,我想创建一个全局自定义对象.我创建了一个名为Material的自定义类.
rt.h
template<typename T>
class Material
{
public:
Vec3<T> ka, kd, ks, kr;
T sp, transparency, reflectivity;
Material( ) {
ka = Vec3<T>(0);
kd = Vec3<T>(0.0, 0.0, 0.0);
ks = Vec3<T>(0.0, 0.0, 0.0);
sp = 0.0;
kr = Vec3<T>(0.0, 0.0, 0.0);
reflectivity = 0.0;
transparency = 0.0;
}
};
在我的rt.cpp文件的顶部,我有以下内容.
#include <"rt.h">
Material<float> currentMaterial();
后来我调用currentMaterial并收到错误
raytracer.cpp:294:3: error: base of member reference is a function; perhaps you meant to call it with no arguments?
currentMaterial.ka = Vec3<float>(kar, kag, kab);
我打电话的时候:
currentMaterial.ka = Vec3<float>(kar, kag, kab);
谢谢
解决方法:
Material<float> currentMaterial();
看起来像编译器的函数声明.像这样声明你的变量:
Material<float> currentMaterial;
标签:shared,c,object,global-variables 来源: https://codeday.me/bug/20190830/1767711.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。