#c #compiler-errors
Вопрос:
Во время компиляции приведенный ниже код получил ошибку компиляции, так как
rise.h: ошибка: указатель на неполный тип класса недопустим (падение->значение = идентификатор)
Пока я добавлял определение функции в файл dot cpp, появилась ошибка связывания.
Примечание: Он отлично работает без встроенного.
Файл: fall.h
#include<rise.h>
class Fall
{
public:
char value;
};
Файл: rise.h
#include<fall.h>
class Fall;
class Rise
{
public:
Fall *fall;
inline void fill_the_val(struct ring *buf, char flag=false, char id = 0)
{
if(true == flag)
{
fall->value = id; //this line got compilation issue
}
}
};
Файл: rise.cpp
#include<fall.h>
#include<rise.h>
int main()
{
fill_the_val(buf, true, 1);
}
Комментарии:
1. Похоже, это обычная круговая проблема с зависимостями. Самое простое решение-разделить объявление и определение
fill_the_val
.2. @Someprogrammerdude : Да, я делал это раньше. Но получил ошибку связывания, если я разделил объявление и определение. Кроме того, если я удалил встроенный, он работает.
3. @Jarod42 Дайте больше информации, пожалуйста
4. @Jarod42: это в допустимой области.
5. Ошибки компоновщика (неопределенные ссылки или аналогичные) связаны с тем, что вы не строите со всеми исходными файлами в своем проекте.