3

C ++で列挙型のコンパイル時間を取得しています。エラーには、クラスまたは名前空間が必要であると表示されます。

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

列挙型は次のように定義されます

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

    //...
 };

私はxcodeでコンパイルしていますが、C ++構文に関係していると思います。以前は、VisualStudioで正常にコンパイルされていました。Visual Studioはおそらくそれについていくつかの警告を出しましたが、ビルドは何か提案がありましたか?

4

2 に答える 2

9

MediaFile::Synced代わりに試してください。SyncStatusはタイプ名(のようにSyncStatus theStatus)であり、名前空間ではありません。

于 2013-02-01T22:47:52.273 に答える
4

enum■C++では名前空間が定義されていないため、列挙子の値は周​​囲のコンテキストに入ります。MediaFile::Synced代わりに行う必要があります。

于 2013-02-01T22:48:43.850 に答える