2014-11-19 2 views
0

매번이 포함되어 있습니다. DepositoNormalDepositoFresco은 서브 클래스가 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(); 
} 

는 또한, ArmazemGraphStlPath라는 또 다른 템플릿 클래스에 서브 클래스입니다하지만 문제는 여기에 생각하지 않는다 : 여기에 코드입니다.

편집 : 여기에 포함됩니다 : 문제를 발견 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>

어떤 도움이 정말 apreciated된다.

+1

"모든 권리가 포함되어 있습니다"는 것을 어떻게 알 수 있습니까? [Minimal, Complete, Verifiable example] (http://stackoverflow.com/help/mcve)를 만들어 보여 주시겠습니까? –

+0

포함 항목이 추가되었습니다. 나는 그들을 잊었다, 미안하다. – Forget

답변

2

나의 심령 적 디버깅 능력은 당신이 당신의 포함에주기가 있다고 말하고, 헤더 가드 또는 #pragma once이 나타나 컴파일러를 위해 코드를 사라지게합니다.

또는 네임 스페이스를 존중하지 않습니다. 그러나 첫 번째 가능성이 더 높습니다.

+0

이 클래스에는 문제가 없었습니다. 어떤 이유로이 클래스에 대한 포함이 있었고이 클래스에 포함되어 순환을 생성했습니다. 다른 사람이 이것을 항상 보았고 정확히 이해하지 못한다면 약간의 빛을 비추는 것에 대답하십시오. – Forget