Я хочу предоставить структуру оператора индекса для структуры, которую я пишу. Я планирую сделать это с двумя struct s foo и bar . Код выглядит следующим образом: < /p>
#include
struct foo;
struct bar{
uint32_t *mem;
uint32_t *opcode;
bar():mem(nullptr),opcode(nullptr){}
bar( foo *f, int index ){
this->mem = f->memory + (index%16);
this->opcode = f->instructions +(index%16);
}
operator bool(){ return (this->mem != nullptr) & (this->opcode != nullptr); }
};
std::ostream& operatormemory[index%16];
}
< /code>
'f'-это неполная ошибка типа, с примечанием, что я использовал прямое объявление.bar( foo *f, int index ){
this->mem = f->memory[index%16];
this->opcode = f->memory[index%16];
}
< /code>
Две примечания к объявлениям прямого объявления и два недопустимого использования неполного типа struct foo < /code> on this-> mem = f-> память [Index%16] < /code> и this-> opcode = f-> memory [index%16]; />
Я попробовал кучу других вещей, но, похоже, у меня в основном проблема с неполным типом < /code>. Я искал так, чтобы получить ответы, и один объяснил, что такое неполный тип, другая проблема была о рекурсивном определении, и это не определяет, как сделать неполный тип завершенным. < /p>
Я повешен на это в течение последних нескольких дней, и итерации для простой перегрузки оператора. Может быть, я произношу это неправильно в вопросах или ищу неправильные ответы. < /p>
Но кто -то может указать на мои ошибки и /или написать, как перегружать оператор Script Suppcript с помощью кода, а не просто меньше функций корпуса?
Подробнее здесь: https://stackoverflow.com/questions/587 ... r-overload