2017-03-13 4 views
0

私は(打ち鳴らすで)そのようにVisual Studioの2015年にこの警告/エラーを表示したいと思います:ビジュアルスタジオ2015で「実装されていない純粋な仮想」を表示するにはどうすればよいですか?

/home/travis/build/x/x/src/guiComboBox.cpp:454:19: error: 

     allocating an object of abstract class type 'GUIListBox' 

       m_listbox = new GUIListBox(Environment, this, -1, r, fal... 

           ^

/usr/include/y/IGUIListBox.h:88:16: note: unimplemented pure virtual 

     method 'setItemOverrideColor' in 'GUIListBox' 

       virtual void setItemOverrideColor(u32 index, const video... 

          ^

/usr/include/y/IGUIListBox.h:91:16: note: unimplemented pure virtual 

     method 'setItemOverrideColor' in 'GUIListBox' 

       virtual void setItemOverrideColor(u32 index, EGUI_LISTBO... 

私が打ち鳴らすには、このエラーを持っていますが、Visual Studioで2015年誰かが私を助けることができませんか?

+2

VSにこのエラーはありません。代わりに何が起こるのですか?あなたは[mcve]を投稿できますか? – nvoigt

+0

どこに問題があるのか​​分かりました。 travisでは、ライブラリのバージョンとこのクラスのメソッドのプロトタイプが異なります。お手伝いありがとう –

答えて

3

Visual Studioは、次のエラーが表示されます:

class Abstract 
{ 
    virtual void NotImplemented() = 0; 
}; 

int main() 
{ 
    // error C2259 : 'Abstract' : cannot instantiate abstract class 
    // note: due to following members : 
    // note: 'void Abstract::NotImplemented(void)' : is abstract 
    // note: see declaration of 'Abstract::NotImplemented' 
    Abstract* a = new Abstract(); 

    return 0; 
} 
2

A C++コンパイラは、このインスタンスで診断を発行するために必要な、とMSVC2015はそれに準拠しています。だからあなたの違いは、あなたが編集していると思っているものを編集していないことです。

潜在的なエラーにフラグを立てたい場合は、運が悪いかもしれません。 C++文法の奇妙さのために、未完成の純粋仮想関数を見つけることはできません(パブクイズについては、不思議な繰り返しのテンプレートパターンに基づいて何かを試してください)。興味のないところでは、Javaコンパイラが見つけるのは簡単です。

0

どこに問題があるのですか? travisでは、ライブラリのバージョンとこのクラスのメソッドのプロトタイプが異なります。助けてくれてありがとう

関連する問題