クラス内のプライベート構造体のためのセッター関数を書き込もうとしています。構造体へのアクセスを許可する宣言メソッドが見つかりませんでした。クラスメンバー関数を使用してプライベート構造体にアクセスする
構造体をクラス外に移動することはできません。この関数はクラスのメンバでなければなりません。フォワード宣言は使用できません。
class Editor
{
public:
void setName (string s);
private:
struct Object
{
string name;
}Instance;
}Ed;
void Editor::setName (string s)
{
name = s; // no access
}
==================================
class Editor
{
public:
friend void setName (Editor &m , string s);
private:
struct Object
{
int name;
}Instance;
}Ed;
void setName (Editor &m , string s)
{
name = s; // no access
}
==あなたがそれを行うことはできません。もちろん、================================
class Editor
{
public:
friend void setName (Object &m , string s); //invalid declaration ( Object is undefined)
private:
struct Object
{
string name;
}Instance;
}Ed;
実際のコードを投稿してください。 – juanchopanza