首页 > 后端开发 > C++ > 正文

如何在 C 中创建相互共享实例的类?

Linda Hamilton
发布: 2024-11-11 08:22:02
原创
651 人浏览过

How to Create Classes That Share Instances of Each Other in C  ?

在 C 中创建共享彼此实例的类

尝试在 C 中创建两个类,其中每个类都需要一个对象如果将其他类作为成员,则可能会发生编译错误。这是因为直接对象包含会导致内存分配无限循环。

解决方案:使用指针作为类成员

要避免此问题,请创建指针作为类成员而不是直接对象。这种方法涉及前向声明来宣布类的存在,而不提供其完整定义。

在 bar.h 中:

#ifndef BAR_H
#define BAR_H

class foo; // Forward declare foo

class bar {
public:
  foo* getFoo();
protected:
  foo* f;
};
#endif
登录后复制

在 foo.h 中:

#ifndef FOO_H
#define FOO_H

class bar; // Forward declare bar

class foo {
public:
  bar* getBar();
protected:
  bar* f;
};
#endif
登录后复制

在各自的 .cpp 文件中,包含其他类的标头:

// foo.cpp
#include "foo.h"
#include "bar.h"

// bar.cpp
#include "bar.h"
#include "foo.h"
登录后复制

这种方法打破了循环引用循环,并允许创建通过指针利用彼此实例的类。

以上是如何在 C 中创建相互共享实例的类?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板