如何在另一类设置静态变量
How to set static variable in another class?
我正在尝试在coeffs.cpp中设置静态变量:
#include "Coeffs.h"
class Coeffs
{
public:
double Coeffs::alpha5b = 0.0;
};
使用标头文件
#ifndef COEFFS_H
#define GOEFFS_H
class Coeffs
{
public:
static double alpha5b;
};
#endif
使用以下代码:
#include <iostream>
#include <fstream>
#include <string>
#include "json/json.h"
#include "Coeffs.h"
using namespace std;
int main()
{
cout << "start" << endl;
string json;
ifstream inputStream;
inputStream.open("coeffTest.json");
inputStream >> json;
Json::Value root;
Json::Reader reader;
bool parseSuccess = reader.parse(json, root);
if(!parseSuccess)
{
cout << "failed" << endl;
}
else
{
Coeffs::alpha5b = 1.1;
//Coeffs::alpha5b = root.get("alpha5b", "NULL").asDouble();
//double item1[] = root.get("delta21b", "NULL").asDouble();
//cout << "alpha5b is: " << Coeffs::alpha5b << endl;
}
cout << "done" << endl;
}
但是每次我编译时都会得到这个:
pottsie@pottsie:~/Documents/CoeffsJSON$ g++ -o JsonToCoeffs JsonToCoeffs.cpp -ljson_linux-gcc-4.6_libmt
/tmp/ccFxrr0k.o: In function `main':
JsonToCoeffs.cpp:(.text+0x10b): undefined reference to `Coeffs::alpha5b'
collect2: ld returned 1 exit status
ive浏览了其他一些类似的问题,找不到任何可行的东西。我尝试添加构造函数并制作一个对象,但是后来我仍然遇到相同的错误。有人知道该怎么办吗?
类声明应放在标题(coeffs.h)
中#ifndef COEFFS_H
#define COEFFS_H
class Coeffs
{
public:
static double alpha5b;
};
#endif
但是源文件中静态成员的初始化(.cpp,.cxx):
#include "Coeffs.h"
double Coeffs::alpha5b = 0.0;
在您的coeffs.cpp中:
#include "Coeffs.h"
double Coeffs::alpha5b = 0.0;
相关文章:
- 为不同配置设置MSVC_RUNTIME_LIBRARY的正确方法是什么
- 在C++/Linux中设置单调时钟的一些技巧
- 如何在选项卡视图Qt中设置一个新项目,并保存以前的项目
- 嵌套在类中时无法设置成员数据
- 需要帮助设置在C++中使用的Potrace
- 如何在自删除后将对象设置为nullptr
- 将指针设置为"nullptr"并不能防止双重删除?
- 如何在Ubuntu中使用cmake设置qt4
- ld:bind_at_load和-bitcode_bundle(Xcode设置ENABLE_bitcode=YES)不能
- 如何在boost beast http请求中设置http头
- 如何解决gcc编译器优化导致的centos双编译器设置中的分段错误
- 如何将这个C++哈希表转换为动态扩展和收缩,而不是使用硬设置的最大值
- 为什么文件名被设置为一个点,而不是在读取矢量中的文件名时
- 如何在24位SDL_Surface上设置像素的颜色
- std::设置自定义比较器
- 如何设置一个范围来提取我想要获得的信息
- 如何创建从同一类继承的不同对象的向量
- 在 c++ 中将对象设置为等于同一类的构造函数是否有效?
- 如何在另一类设置静态变量
- 将指向同一类的私有成员指针设置为NULL