Я хочу, чтобы моя структура кабаны содержала указатель на переменную структуры aba. И я также хочу, чтобы структура aba выполняла некоторые операции в зависимости от свойств набора < caba>.Проблемы с прототипом структуры (недопустимое использование неопределенного типа) C++
Но когда я использую свойства указателя аЬа внутри Каба я получаю сообщение об ошибке
#include<stdio.h>
#include<set>
using namespace std;
struct aba;
struct caba
{
aba *m;
int z;
bool operator >(const caba &other)
{
if(m==NULL||other.m==NULL)
return true;
return (*m).x>(*(other.m)).x;
}
};
set <caba> t;
struct aba
{
int x,y;
bool f()
{
return !t.empty();
}
};
int main()
{
return 0;
}
sayng:
In member function `bool caba::operator>(const caba&)':
Test.cpp|13|error: invalid use of undefined type `struct aba'
Test.cpp|4|error: forward declaration of `struct aba'
Test.cpp|13|error: invalid use of undefined type `struct aba'
Test.cpp|4|error: forward declaration of `struct aba'
Но почему АБА не определено? Существует прототип этого.
Спасибо. И разве нет способа иметь оба класса в одном файле? – user2136963
Лучше, чтобы это было похоже на juanchopanza, или вы можете попробовать это http://ideone.com/Vw4Vcz – sajas
@ user2136963 Да, есть, но вам все равно придется поместить определение 'bool caba :: operator>' * после * определения класса 'aba'. – juanchopanza