我在访问我的类私有成员变量部分中定义的静态const变量时遇到问题.具体来说,下面编写的代码可以在构造函数中输出变量,但是当我尝试通过访问器函数访问它时,我得到下面讨论的错误.如果有人知道为什么我会感激你的帮助.
#include <iostream>
using namespace std;
class TestStaticVariables
{
// Private member variable:
static const double static_double_variable;
public:
// Constructor:
TestStaticVariables()
{
// Initialization:
static const double static_double_variable = 20.0;
cout << static_double_variable;
}
// Member Function:
void test();
};
void TestStaticVariables::test()
{
Run Code Online (Sandbox Code Playgroud)
当下一行取消注释时,我收到以下错误消息:
行位置工具:0:"TestStaticVariables :: static_double_variable",引自:
//cout << static_double_variable;
}
int main(int argc, char* const argv[])
{
TestStaticVariables test_instance;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
尝试在类定义之外初始化变量,这是一个工作示例:
#include <iostream>
class Foo {
static const double _bar;
public:
Foo();
void Bar();
};
const double Foo::_bar = 20.0;
Foo::Foo() {
std::cout << Foo::_bar << std::endl;
}
void Foo::Bar() {
std::cout << Foo::_bar << std::endl;
}
int main( int argc, char *argv[] ) {
Foo f;
f.Bar();
return 0;
}
Run Code Online (Sandbox Code Playgroud)