从另一个对象访问对象成员的更好方法
Better approach in accessing members of an object from another object c++
我不是很擅长c++,所以我真的需要你的帮助。我正在使用对象内部的方法,我想访问其他对象成员。我怎样才能在不违反OOP的情况下以更好的方式做到这一点?
这是我的。h
class XSection
{
private:
char *m_sname;
XSection *m_snext;
};
class XIniFile
{
private:
char *m_iname;
XSection *m_isections;
XSection *addSection(const char *);
}
我在。cpp
中有类似的内容XSection *XIniFile::addSection(const char *d)
{
XSection *sn = (XSection *) malloc (sizeof(XSection *));
sn->m_sname = strdup(d);
return sn;
}
我有一个错误的char* XSection::m_sname is private char *m_name;
我如何使用它?
一般来说,这被认为是不好的做法,因为它违反了封装的概念。在这种情况下,最好为XSection提供一个构造函数,用所需的参数对其进行设置,并使用new而不是malloc。例如:
构造函数定义:
XSection(char* name);
实现:XSection(char* name) : m_iname(name) { }
用法:
XSection* sn = new XSection(strdup(d));
但是要直接回答这个问题:如果必须的话,您可以将XIniFile设置为XSection的一个朋友类:
class XSection
{
friend class XIniFile;
相关文章:
- 初始化具有非默认构造函数的std::数组项的更好方法
- Protobuf中重复字段的问题.使用重复字段进行序列化/反序列化的更好方法是什么?
- 编写按初始值循环的循环的更好方法是什么
- 用 c++ 为游戏制作"bullet"的更好方法?
- 在CMakeLists中包含目录的更好方法.txt
- 将QDomDocument数据用作文本的更好方法
- C++ - 创建具有相同字符的特定大小的以 null 结尾的 c 样式字符串的更好方法
- 在 sqlite3 中批量插入的更好方法C++
- 设计许多单例代码结构的更好方法
- 使用继承的类模板避免公共成员不可见和源代码膨胀/重复的更好方法
- 在初始化列表中初始化数组的更好方法
- 将对象从一个 std::d eque 移动到另一个的更好方法
- 请告诉我在巴泽尔拥有多平台工作空间的更好方法
- 构造具有大量数据的对象的更好方法(C++)
- 从2D矢量中找出最小尺寸的向量元素的更好方法
- 在C++中创建不可变对象的更好方法
- 在构造函数中组织初始值设定项列表的更好方法
- std::copy with return values - 防止"expression: string iterators incompatible"的更好方法?
- 删除数组成员的更好方法是什么?
- 在C 中操作数据的更好方法是什么