C 类可以相互包含自身作为成员吗?
在 C 中,定义一个包含自身作为成员的类是很诱人的表示嵌套结构,如表达式树。但是,这种方法是不允许的。
推理:
如提供的答案中所述,使用其自己类型的成员变量定义类将导致无限大的物体。每个 Node 将包含两个 Node 对象,而 Node 对象又包含两个以上 Node 对象,依此类推。这会使内存分配变得不切实际并导致运行时错误。
解决方案:
要解决此问题,需要使用指向类类型的指针作为成员变量而不是类类型本身。这允许表示嵌套,同时避免无限递归的问题。
考虑以下修改后的定义:
class Node { char *cargo; Node* left; // Pointer to a Node object Node* right; // Another pointer to a Node object };
通过使用指针,我们可以创建一个树状结构,而无需运行陷入自我参照问题。
以上是C 类可以包含自身作为成员变量吗?的详细内容。更多信息请关注PHP中文网其他相关文章!