私はクラスバーを持っています:
class Bar
{
public:
Bar(void);
~Bar(void);
};
Foo
オブジェクトへの参照をBar
コンストラクターのパラメーターとして取得し、それをプライベート メンバーに保存する必要があるクラスbar_
:
class Foo
{
private:
Bar& bar_;
public:
Foo(Bar& bar) : bar_(bar) {}
~Foo(void) {}
};
これはコンパイルされません:
「Foo」にオーバーロードされたメンバー関数が見つかりません
型指定子がありません - int と見なされます。注: C++ は default-int をサポートしていません
今、私は保証する必要があるいくつかのことを疑っています.2番目のエラーBar& bar_;
はFoo
. 宣言するときに明示的なコンストラクターを使用する必要がありbar_
ますか?
この問題に関してコンパイラがどのように機能するかを知りたいので、詳細な説明をいただければ幸いです。
ありがとう。
編集
どうやら私のコードには何も問題がなかったので、新しいコードを投稿しています。
Parser.h
:
#pragma once
class Parser
{
private:
std::istream& inputStream_;
Analyzer& analyzer_;
public:
Parser(std::istream &inputStream, Analyzer& analyzer);
~Parser(void);
};
Parser.cpp
:
#include "stdafx.h"
#include "Parser.h"
#include "Analyzer.h"
Parser::Parser(std::istream &inputStream, Analyzer& analyzer ) : inputStream_(inputStream), analyzer_(analyzer) {}
Parser::~Parser(void) {}
Analyzer.h
:
#pragma once
class Analyzer
{
public:
Analyzer(void);
~Analyzer(void);
};