我正在重用旧项目中的一个类,它具有以下内容:
标题文件
// forward class declarations
class TimeZoneInfo;
class DateTime
{
public:
// constructors
DateTime();
static TimeZoneInfo m_Info;
};
正文档
TimeZoneInfo DateTime::m_Info; <-- Error Here
DateTime::DateTime()
{}
//blah blah
当我去构建这个时,我得到错误:
错误:不允许使用不完整类型:
为什么之前有效? (我现在使用的是Visual Studio 2013)
我该如何解决这个问题?感谢
答案 0 :(得分:4)
为什么之前有效?
不可能说。
我该如何解决这个问题?
在变量定义之前,在源文件中包含定义TimeZoneInfo
的标头。
&#34;不完全&#34;表示该类型已声明但未定义,因此只能以有限的方式使用。具体来说,您可以声明一个不完整类型的变量,但不能定义它。
答案 1 :(得分:1)
可以使用静态不完整类型成员。但是,它的类型应该在之前定义静态成员的定义,即
TimeZoneInfo DateTime::m_Info; // class TimeZoneInfo must be fully defined before this line