【发布时间】:2016-10-26 02:50:59
【问题描述】:
我有一个类,我将其命名为 CObject,其中包含很多私有数据成员。
class CObject
{
private:
int a, b, c, d, e, f, g, h, i;
string j;
...More data types etc
};
还有另一个类,它解析初始化文件递归地查找对象的成员。这个类满足库提供的虚拟类。
class CParser
{
public:
void beginParsingObject()
{
//etc
}
void parseObjectMembers(string name, int a)
{
//Found a member variable of the object!
}
void finishParsingObject()
{
//Finish up parsing the object
}
};
因此,“parseObjectMembers”将被调用的次数与 CObject 类中的成员变量一样多。
当解析器在它的数据文件的条目中找到它的下一个成员变量时,CObject 类将填充它的成员变量。
这是我的困惑:
在读取数据时在 CObject 中设置成员变量的好方法是什么?
- 使用构造函数意味着缓存传入的每个值,并在完成解析对象时构造对象 - 不太令人满意,因为有很多,我希望解析器非常通用。
-在 CObject 类中使用 getter 和 setter 会将所有成员变量暴露给其他所有不需要或不需要的变量。
-使用初始化函数会很好,但我不希望其他任何东西可以访问该函数 - 也许是朋友函数?
感谢任何想法,我会在我可以澄清的地方进行说明。抱歉,代码晦涩难懂,也不是很充实,但希望足以看到问题的症结所在。
谢谢
【问题讨论】: