C++ - 访问全局变量对象

标签 c++ object global-variables shared

我正在构建一个 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;

关于C++ - 访问全局变量对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26620521/

相关文章:

c++ - 可变长度整数 C++

hadoop - 在 reudcer 类中使用全局变量

objective-c - 如何在 objective-c 中声明全局变量

c++ - 如何跟踪分数——C++ 控制台

c++ - 如何使用 C++ 驱动程序在 mongodb 中设置 TTL

c++ - 如何在 DLL 边界上公开 STL 列表?

java - 我应该为 Java 中的列表对象提供 setter 吗?

javascript - 如何编写多个条件的 if , else block ?

javascript - 如何动态设置关联数组的命名索引?

C 和 pthreads : how can a mutex be referred to a particular variable?