尝试为类中的私有结构编写setter函数。尚未找到允许访问结构的声明方法。
结构可能不会移到课堂外。该函数必须是该类的成员。可能不会使用前向声明。
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;
答案 0 :(得分:1)
void Editor::setName ( string s )
{
name = s; // no access
}
当然,你无法做到这一点。 name
中没有名为Editor
的对象。但是,有一个名为Instance
的对象包含一个名为name
的对象,您可以使用Instance.name = s;
设置该值。