我正在寻找允许在另一个类的头文件中进行类的前向声明的定义:
我是否允许为基类,作为成员持有的类,通过引用传递给成员函数的类等执行此操作?
我是C++的新手,但我确实有一些Java经验.编码时,我偶然发现了一个让我感到困惑的错误.这是我的代码(简化,但错误是相同的):
啊:
#pragma once
#include "B.h"
class A
{
public:
A();
void foo();
void sayHello();
B b;
};
Run Code Online (Sandbox Code Playgroud)
A.cpp:
#include "A.h"
#include <iostream>
A::A() {}
void A::foo() {
b.bar(this);
}
void A::sayHello() {
std::cout << "Hello" << std::endl;
}
Run Code Online (Sandbox Code Playgroud)
BH:
#pragma once
#include "A.h"
class B
{
public:
B();
void bar(A *a);
};
Run Code Online (Sandbox Code Playgroud)
B.cpp:
#include "B.h"
B::B(){}
void B::bar(A *a) {
a->sayHello();
}
Run Code Online (Sandbox Code Playgroud)
我想了一个指针传递一个对象到酒吧在功能上乙,这样我就可以修改并访问一个在的领域吧.奇怪的是,当我通过另一个类的A实例调用foo时,我得到了这些错误:
1>------ Build …Run Code Online (Sandbox Code Playgroud)