Tengo un problema con Eclipse Indigo quejándose de que los métodos de una clase no se podían resolver, pero compilando de todos modos y funcionando correctamente (AFAIK). Es un programa muy simple. Aquí está Population.cpp:El método Eclipse no se pudo resolver en un programa simple 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";
}
Ahora, creo ese código y todo está bien. En otro proyecto en Eclipse, llamaré a este código como este:
#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);
}
Como se puede ver también estoy corriendo el plugin lindo para TDD en C++. No se queja cuando declaro p como tipo Población y pasa la primera afirmación. Soy algo nuevo en C++, pero me aseguré de agregar el proyecto del que es Population.cpp a la ruta de inclusión para el proyecto de prueba.
No es un gran problema, ya que no está afectando a nada obvio para mí, pero sigue siendo muy molesto. No veo una situación en la que deba hacer esto.
¡Gracias por cualquier ayuda!
Gracias por la punta! No responde la pregunta, pero el tamaño de la propina me ayudó. Supongo que he estado usando idiomas de nivel superior por mucho tiempo. Poco oxidado sobre lo básico así. Casi parece un truco almacenar simplemente los tamaños junto con la matriz en sí, pero supongo que si el tamaño de la matriz va a ser la entrada de la línea de comandos, no hay mejor manera de hacerlo en C++. –