Mam problem z Eclipse Indigo narzekającym, że metody klasy nie mogą zostać rozwiązane, ale kompilacja i tak działa poprawnie (AFAIK). To bardzo prosty program. Oto Population.cpp:Metoda Eclipse nie mogła zostać rozwiązana w prostym programie 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";
}
Teraz buduję ten kod i wszystko jest w porządku. W innym projekcie w Eclipse, dzwonię ten kod tak:
#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);
}
Jak widać jestem też działa cute plugin dla TDD w języku C++. Nie narzeka, gdy deklaruję p jako populację typu i pierwsze potwierdzenia zdania. Jestem trochę nowy w C++, ale dopilnowałem, aby dodać projekt, do którego należy Population.cpp, do ścieżki dołączania do projektu testowego.
To nie jest wielka sprawa, ponieważ nie ma wpływu na nic oczywistego, ale nadal jest bardzo denerwujące. Nie widzę sytuacji, w której powinien to zrobić.
Dzięki za pomoc!
Dzięki za cynk! Nie odpowiada na pytanie, ale rozmiar końcówki pomógł mi. Wydaje mi się, że używam języków wyższego poziomu przez zbyt długi czas. Trochę zardzewiałych na takich podstawach. Wygląda na to, że po prostu przechowywanie rozmiarów wraz z samą tablicą jest proste, ale domyślam się, że jeśli rozmiar tablicy ma być wprowadzony za pomocą wiersza poleceń, nie ma lepszego sposobu na zrobienie tego w C++. –