Ara bağlantı nedenleriyle birbirleri için işaretçiler içeren C++ sınıfında bir dizi dersim var. kod aşağıdaki gibidir:Birbirlerine İşaretçi İçeren Sınıfları Tanımlama
class Cell;
//classes
class Connection {
public:
Cell * source;
virtual bool trigger() {
return source->trigger(); //line 16, source of the error
}
//constructors
//default
Connection() {
source = NULL;
}
//call
Connection(Cell * in) {
source = in;
}
//copy
Connection(const Connection & in) {
source = in.source;
}
};
class NotConnection : Connection {
public:
virtual bool trigger() override {
return !source->trigger();
}
//constructors
//default
NotConnection() {
source = NULL;
}
//call
NotConnection(Cell * in) {
source = in;
}
//copy
NotConnection(const NotConnection & in) {
source = in.source;
}
};
class Cell {
public:
vector<Connection *> parents;
virtual bool trigger() = 0;
~Cell() {
for (int i = 0; i < parents.size(); i++) {
delete parents[i];
}
}
};
Ben herhangi derleme sorunları temizlemek için deklarasyon ileri kullanabileceğini düşündüm ama proje oluşturma girişiminde hata alıyorum: Ben ayırd edici güc çalıştı
source.cpp(16): error C2027: use of undefined type 'Cell'
sınıfları sıralamak ve bunun yerine Connection
bildirmek ve bu da işe yaramadı, benim sorum, derleyicinin bu hatayı neden attığını ve bunu çözmek için ne yapabilirim?
Um ... hat 16 hangisi? – Brian
Hangi hattın 16 olduğunu göstermek için bir yorum ekledim – Stephen