静态变量和未解决的外部错误
C++ Static variable and unresolved externals error
我希望我能得到一些关于类的静态变量的澄清。
例如:我有两个不同的类,它们执行完全不同的函数,和。在alpha中,我声明了一个类型为beta的静态变量,它看起来像这样:
//alpha.h
#pragma once
#include <iostream>
#include "beta.h"
class alpha{
public:
alpha(){
}
static beta var;
void func(){
var.setX(3);
}
void output(){
}
};
//beta.h
#pragma once
#include <iostream>
using namespace std;
class beta{
public:
int x;
char y;
beta(){
x = 0;
y = ' ';
}
void setX(int _X){
x = _X;
}
};
//main.cpp
#include <iostream>
#include <iomanip>
#include "alpha.h"
using namespace std;
int main(){
alpha x, y, z;
x.func();
}
现在当我尝试编译这个时,我得到一个无法解决的外部错误:
错误LNK2001:未解析的外部符号"public: static class betaα:var"(? var@alpha@@2Vbeta@@A)
我不确定要改变什么,或者我还需要添加什么来使这样的工作。我想让x y和z共享相同的变量。我想我可以通过传递一个变量给它们来完成同样的事情。但我想知道是否有可能使用static关键字来做同样的事情,因为类的静态成员在类的任何实例中都具有相同的值。除非我定义错了。
类中的静态变量仍然必须在某处定义,就像方法一样:
放入main.cpp:
beta alpha::var;
添加到main.cpp:
<>之前βα:var;之前var在h-file中只是类型声明。
相关文章:
- Visual Studio 2017 中的 QtMetaObject 未解决的外部错误
- 无法确定未解决的外部错误来自何处
- DLIB On visual studio 2015抛出一个未解决的外部错误
- 排除外部错误R6025-纯虚拟函数调用
- 如何在我的指针和阵列功能中修复未解决的外部错误-LNK2019和LNK1120
- 将外部错误代码映射到std :: error_condition
- 虚拟函数未解决的外部错误
- 非常简单的 x64 组装/C++应用程序中未解决的外部错误
- 链接到SFML的未解决的外部错误(SFML 2.2,Visual Studio Community 2013)
- 为什么我的代码会出现LNK2019未解决的外部错误
- 尝试重载=运算符时出现1个未解析的外部错误
- c++中链表代码中未解决的外部错误
- 操作员过载未解决的外部错误LNK1120、LNK2019
- 未解决的外部错误
- 模板上的算术运算符过载,导致无法解析的外部错误
- 致命错误LNK1120:1 个未解析的外部 & 错误 LNK2019:函数___tmainCRTStartup中引用_main未解析的外部符号
- 模板c++中未解决的外部错误
- C++程序使用 C 库标头将"this"识别为关键字。外部"C"错误?
- DLL LNK2019错误(未解析的外部错误__imp)
- 如何将DLL链接到我的主项目?(正在获取未解析的外部错误)