Ho un problema con Eclipse Indigo lamentando che i metodi di una classe non possono essere risolti, ma compilando comunque e funzionando correttamente (AFAIK). È un programma molto semplice. Ecco Population.cpp:Il metodo Eclipse non può essere risolto con un semplice programma C++
#include <stdlib.h>
#include <iostream>
#include <time.h>
#include "Population.h"
Population::Population() {
// TODO Auto-generated constructor stub
}
Population::~Population() {
// TODO Auto-generated destructor stub
}
void Population::initializePop(int numBits, int N) {
srand((unsigned)time(0));
for(int i=0; i<N; i++) {
x[i] = (char*) calloc(numBits, sizeof(char));
for(int j=0; j<numBits; j++) {
if(rand() < 0.5)
x[i][j] = 0;
else
x[i][j] = 1;
}
}
}
char** Population::getX() {
return x;
}
void Population::printStuff() {
std::cout << "Whatever";
}
Ora, ho creato quel codice e tutto va bene. In un altro progetto all'interno di Eclipse, sto chiamando questo codice come questo:
#include <typeinfo>
#include <string.h>
#include <iostream>
#include "cute.h"
#include "ide_listener.h"
#include "cute_runner.h"
#include "Population.cpp"
void testPopulationGeneration() {
Population* p = new Population;
int N = 10;
int bits = 4;
char** pop;
ASSERTM("Population variable improperly initialized", dynamic_cast<Population*>(p));
std::cout << p->printStuff();
std::cout << "Ok...";
p->initializePop(bits, N);
pop = p->getX();
ASSERTM("Pop not correct size.", sizeof(pop) == 10);
}
Come potete vedere sto in corso anche il plugin per CUTE TDD in C++. Non si lamenta quando dichiaro p come tipo Population e passa la prima asserzione. Sono un po 'nuovo al C++, ma mi sono assicurato di aggiungere il progetto da cui Population.cpp proviene al percorso di inclusione per il progetto di test.
Non è un grosso problema perché non mi interessa nulla di ovvio, ma è ancora molto fastidioso. Non vedo una situazione in cui dovrebbe farlo.
Grazie per qualsiasi aiuto!
Grazie per la punta! Non risponde alla domanda, ma la dimensione della punta mi ha aiutato. Credo di aver usato linguaggi di alto livello per troppo tempo. Poco arrugginito sulle basi del genere. Sembra quasi un hack per archiviare le dimensioni insieme alla matrice stessa, ma suppongo che se la dimensione dell'array sarà l'input da riga di comando, non c'è modo migliore di farlo in C++. –