繁体   English   中英

静态成员上不允许使用不完整的类型

[英]Incomplete type is not allowed on static member

我正在重用旧项目中的类,它具有以下内容:

头文件

// 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)

我该如何解决呢? 谢谢

为什么这以前起作用?

不可能说。

我该如何解决呢?

在变量定义之前,包括从源文件定义TimeZoneInfo的标头。

“不完整”表示已声明但未定义类型,因此只能以有限的方式使用。 具体来说,您可以声明一个不完整类型的变量,但不能定义它。

可以使用静态的不完整类型成员。 但是,应在定义静态成员之前定义其类型,即

TimeZoneInfo DateTime::m_Info; // class TimeZoneInfo  must be fully defined before this line

相关: 不完整类型的静态字段-是否合法?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM