3

我在 C++ 中得到一个枚举的编译时间,错误说 Expected a class or namespace

  mf.setStatus(MediaFile::SyncStatus::Synced);

枚举是这样定义的

 class MediaFile
 {
    public:
    enum SyncStatus 
    {
        New = 0,
        Remove = 5,
        Synced = 10,
        Unknown = 15
    };

    //...
 };

我在 xcode 中编译,但我想它与 C++ 语法有关,以前它在 Visual Studio 上编译得很好。Visual Studio 可能对此给出了一些警告,但是构建有什么建议吗?

4

2 回答 2

9

试试MediaFile::Synced吧。SyncStatus是类型名称(如SyncStatus theStatus),而不是命名空间。

于 2013-02-01T22:47:52.273 回答
4

enumC++ 中的 s 没有定义命名空间,因此枚举数的值进入周围的上下文。你需要这样做MediaFile::Synced

于 2013-02-01T22:48:43.850 回答