ヘッダーファイルには次のものがあります:
class Shape_definition {
private:
// ...
std::vector<Instruction> items;
public:
//...
friend std::istream& operator >> (std::istream& is, Shape_definition& def); // FRIEND!
};
//-----------------------------------------------------------------------------
std::istream& operator >> (std::istream& is, Shape_definition& def);
//...
定義コード:
std::istream& operator >> (std::istream& is, Bushman::shp::Shape_definition& def){
//...
Bushman::shp::Instruction instr = Bushman::shp::Instruction::get_empty();
while(is >> instr) def.items.push_back(instr); // Problem is here!
return is;
}
しかし、MS Visual Studio エディターでエラーが発生します。
エラー C2248: 'Bushman::shp::Shape_definition::items': クラス 'Bushman::shp::Shape_definition' で宣言されたプライベート メンバーにアクセスできません
演算子private
でフィールドを使用できないのはなぜですか?friend
ありがとうございました。