每次我尝试构建程序时都会收到此错误:
error C2065: 'DepositoFresco' : undeclared identifier
我创建DepositoFresco
,DepositoNormal
和Deposito
的每个实例都会发生这种情况。 DepositoNormal
和DepositoFresco
是Deposito
(虚拟类)的子类。我有所有权利包括所以我不知道是什么导致了这一点。
错误发生在'Armazem'类中,我在其中实例化其中几个以插入向量等。这是代码:
Armazem::Armazem(int nF, int nN, int nPF, int nPN, int distMaxi, int distMini) : depositos(), distancia(), graphStlPath <Deposito*, int>() {
distMax = distMaxi;
distMin = distMini;
for (int i = 0; i < nF; i++) {
DepositoFresco* df = new DepositoFresco(random(1, 20), (float)random(1000, 10000), nPF);
depositos[i] = df;
}
for (int j = nF; j < nF + nN; j++) {
DepositoNormal* dn = new DepositoNormal(random(1, 20), (float)random(1000, 10000), nPN);
depositos[j] = dn;
}
preencherMatriz();
}
此外,Armazem
是另一个名为GraphStlPath
的模板类的子类,但我认为问题不在这里。
编辑:以下是包含:include "Deposito.h"
include "DepositoFresco.h"
include "DepositoNormal.h"
include "graphStlPath.h"
include <vector>
include <map>
include <stdlib.h>
include <stdio.h>
include <time.h>
include <typeinfo>
include <iostream>
include <fstream>
include <string>
找到问题的任何帮助都是非常有用的。
答案 0 :(得分:2)
我的通灵调试能力告诉我你的包含中有一个循环,并且标题保护或#pragma once
正在开始,使编码器的代码消失。
那,或者你不尊重命名空间。但第一个更有可能。