所以我到处搜索,但无法得到我的问题的直接答案。我已经有一段时间没有接触 C++了,所以我想采用极简的编码结构,但我遇到了一个问题。
我有一个父类在 .h 文件中调用 Data
我在数据中嵌套了另外 2 个类,称为“内存”和“函数”
我创建了 2 个 .cpp 文件,每个嵌套类一个,“Memory.cpp”存储变量和结构数据,“Functions.cpp”存储函数数据
我在“记忆”课程上遇到问题
我根本无法找到实例化“Memory”类结构的方法或解决方案
这是我的 Classes.h 文件
#pragma once
#include "main.h"
class Data
{
public:
class Memory
{
public:
//I ALREADY CODED THE STRUCTS IN MY "MEMORY.CPP" FILE
struct sig;
struct set;
struct val;
//I TRIED WRITING THIS INSIDE THIS PUBLIC CLASS MEMORY AND ITS AN ERROR
//sig sig0;
//set set0;
//val val0;
};
class Functions
{
public:
void setup(Memory& gMem);
void mainLoop(Memory& gMem);
};
Memory gMem;
Functions gFunc;
Data()
{
//I'M TRYING TO PASS BY REFERENCE SELF gMem INTO SETUP FUNCTION,
//WHICH THE FUNCTION ACCESSES THE STRUCTS INSIDE
//THE PUBLIC MEMORY CLASS
//BUT IT CANNOT EVEN GRANT THIS
this->gFunc.setup(this->gMem);
this->gFunc.mainLoop(this->gMem);
}
};
这是我的main.cpp文件
#include "main.h"
int main()
{
Data run;
return 0;
}
这是我的 main.h 文件
#include <iostream>
#include <vector>
#include "Classes.h"
我希望这是足够的信息来解决我的问题,我不想发布我的“Memory.cpp”和“Functions.cpp”文件,它的信息太多了。谢谢所有好心人帮助我。
类成员需要是完整类型,如果类型不完整则只能使用指针或对其的引用。
因此,您要么需要将
sig
、set
和 val
的定义移到头文件中,要么将 sig0
、set0
和 val0
放入引用中(谨慎使用,引用成员有陷阱)或(最好是智能的)指针。