Joh*_*ker 2 c++ oop header-files
我有点问题.我有一个A类实例化B的对象然后B实例化A的对象.这有可能吗?我尝试在每个标题中添加它
#ifndef A
#define A
class a...
#endif
Run Code Online (Sandbox Code Playgroud)
但是如果让我进入一个无限的头部循环,它到达最大的头部包含,那么显然一个人正在呼叫另一个而另一个正在呼叫那个.有没有办法实现这个目标?
编辑:好的,这似乎是一个很好的答案,但现在A抱怨B没有构造函数,尽管它确实有一个构造函数.我无法想出那一个.
您可以转发声明类,例如:
A.h
:
class B;
class A
{
B* a_;
};
Run Code Online (Sandbox Code Playgroud)
B.h
:
class A;
class B
{
A* a_;
};
Run Code Online (Sandbox Code Playgroud)
在你实际使用的类(即,创建它们,消灭它们,使用它们的成员等),您的源文件,则需要包括头,使他们的定义是可供选择:
#include "A.h"
#include "B.h"
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2133 次 |
最近记录: |