2016-11-30 28 views
-1

我正在做一项任务,虽然我对实际任务没有任何问题,但我想让我的代码“正确”。我想在我的头文件中定义一个静态变量。我希望它是静态的,这样这个类的所有实例都可以访问同一个变量。我不想让它外观,我只想让这个类有权访问它。然后我试图在实际的文件(而不是头)中定义它,但是我一直收到关于无法投射的错误。我只是想学习如何正确地做到这一点,以获得更干净的代码。在头文件|中创建一个静态字段C++

+3

当您提出有关您的代码导致的问题的问题时,如果您提供[代码人员可以用来重现问题的代码](http://stackoverflow.com/help/mcve),您将得到更好的答案。 – CAB

+3

而问题中的代码必须是文本格式而不是图像。 – drescherjm

+0

在实现(.cc)文件中,您需要正确地声明变量,而不仅仅是分配给它。例如''List * AddrSpace :: availSlots = new List();' –

回答

1

你的字段的定义停留在类中:

class AddrSpace 
{ 
    List *availSpots; 
}; 

这个变量的完整名称将是AddrSpace::availSpots。 C++需要明确定义静态变量(包括类的静态字段)。我不会说这是完全合乎逻辑的,因为编译器已经拥有了所有必要的东西。尽管如此。您的C++文件中的定义应该如下所示:

List *AddrSpace::availSpots = new List(); 

下一次请将源直接添加到问题中。

相关问题