gpt4 book ai didi

c++ - 内部类和外围类分开定义

转载 作者:搜寻专家 更新时间:2023-10-31 01:31:07 24 4
gpt4 key购买 nike

如果封闭类的成员变量是内部类的实例,那么将内部类和封闭类的定义分离到不同的头文件中的正确方法是什么?

这是 Outer(封闭类)的 header :

//outer.h
#ifndef OUTER_H_INCLUDED
#define OUTER_H_INCLUDED

#include "inner.h"

class Outer
{
class Inner;

public:
/* public member functions */

private:
Inner inner_instance;
};

#endif

Inner的头部:

//inner.h
#ifndef INNER_H_INCLUDED
#define INNER_H_INCLUDED

#include "outer.h"

class Outer::Inner
{
/* definition */
};

#endif

这不会编译。问题是两个类必须看到彼此的定义。是否有可能打破循环依赖并仍然保持定义分离?

最佳答案

没有。您可以做的最好的事情是存储一个指向内部类的指针(或者可能是引用),这允许 Inner 不完整。这通常称为 pImpl 习语。

关于c++ - 内部类和外围类分开定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46382406/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com