• 締切済み

定義の曖昧さで問題?コンストラクタ呼び出しでエラー

コンストラクタの呼び出しでエラーが出てしまいます! 問題のコンストラクタの定義位置を見るとなぜか2件検出されるので、 それが原因かなと思ってます。 エラーが出るのは下の ImpBrush::c_pBrushes[BRUSH_CIRCLES] = new CircleBrush( this, "Circles" ); のところです。 ImpressionistDoc::ImpressionistDoc() { (略) ImpBrush::c_pBrushes[BRUSH_POINTS ] = new PointBrush ( this, "Points" ); ImpBrush::c_pBrushes[BRUSH_TRIANGLES] = new TriangleBrush( this, "Triangles" ); ImpBrush::c_pBrushes[BRUSH_CIRCLES ] = new CircleBrush( this, "Circles" );←構文エラー! (略) } また、定義の検出される先は、一方は呼び出してほしいコンストラクタ、もう一方はなぜかCircleBrushクラスそのものなのです。 非常におかしいことになってます。 ↓定義位置として正しい箇所 CircleBrush::CircleBrush( ImpressionistDoc* pDoc, char* name ) : ImpBrush(pDoc,name) { } class CircleBrush : public ImpBrush ←なぜかここも定義位置として呼び出される { public: CircleBrush( ImpressionistDoc* pDoc = NULL, char* name = NULL ); void BrushBegin( const Point source, const Point target ); void BrushMove( const Point source, const Point target ); void BrushEnd( const Point source, const Point target ); char* BrushName( void ); }; 他のPointBrush、TriangleBrushではこれは起こりませんでした。CircleBrushのみです。 一向に前に進めません! 何が原因でしょうか? C++のバグでしょうか?

みんなの回答

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.1

使っている処理系は何ですか? どんなエラーメッセージが出ていますか (「構文エラー」ではないはず. 出ているエラーメッセージを一切解釈することなくそのまま書いてください)?

itori00
質問者

お礼

回答ありがとうございます! それで申し訳ないのですが、自己解決しました。 単なるヘッダのインクルードし忘れでした。 ご迷惑おかけしました・・・

関連するQ&A