使用类成员函数

时间:2016-12-04 21:48:16

标签: c++ class structure

尝试为类中的私有结构编写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;

1 个答案:

答案 0 :(得分:1)

void Editor::setName ( string s )
{
    name = s;  // no access
}

当然,你无法做到这一点。 name中没有名为Editor的对象。但是,有一个名为Instance的对象包含一个名为name的对象,您可以使用Instance.name = s;设置该值。