我正在寻找允许在另一个类的头文件中进行类的前向声明的定义:
我是否允许为基类,作为成员持有的类,通过引用传递给成员函数的类等执行此操作?
我总是把我的#include后 #ifdef/ #define包含卫队.现在我的IDE(Qt Creator)的重构机制将它放在Include-Guard之前,例如
#include "AnotherHeader.h"
#ifndef MYHEADER_H
#define MYHEADER_H
Run Code Online (Sandbox Code Playgroud)
这会导致任何问题,还是可以这样离开?
在 C++ 中,我遇到了循环依赖/不完整类型的问题。情况如下:
Stuffcollection.h
#include "Spritesheet.h";
class Stuffcollection {
public:
void myfunc (Spritesheet *spritesheet);
void myfuncTwo ();
};
Run Code Online (Sandbox Code Playgroud)
东西集合.cpp
void Stuffcollection::myfunc(Spritesheet *spritesheet) {
unsigned int myvar = 5 * spritesheet->spritevar;
}
void myfunc2() {
//
}
Run Code Online (Sandbox Code Playgroud)
精灵表.h
#include "Stuffcollection.h"
class Spritesheet {
public:
void init();
};
Run Code Online (Sandbox Code Playgroud)
精灵表.cpp
void Spritesheet::init() {
Stuffcollection stuffme;
myvar = stuffme.myfuncTwo();
}
Run Code Online (Sandbox Code Playgroud)
spritesheet has not been declared在 Stuffcollection.h(上面的第 4 行)中收到编译器错误
。我理解这是由于循环依赖。#include "Spritesheet.h"为class Spritesheet;Stuffcollection.h 中的前向声明,则会在 Stuffcollection.cpp 中收到编译器错误invalid use of …