The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"gcc invalid use of incomplete type"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Программирование под UNIX (C/C++)
Изначальное сообщение [ Отслеживать ]

"gcc invalid use of incomplete type"  +/
Сообщение от handler2006 email(ok) on 14-Дек-11, 17:40 
Здравствуйте!
Имеем участок кода:

class A;

Class B {
public:
  A *a;
  B::B () { a = new A; }
};

Получаем ошибку: invalid use of incomplete type
Это в корне неправильная реализация или есть пути работы с объектами, тип которых неизвестен?
Спасибо.
Алексей

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "gcc invalid use of incomplete type"  +/
Сообщение от JohnProfic (ok) on 14-Дек-11, 19:07 
> Это в корне неправильная реализация или есть пути работы с объектами, тип
> которых неизвестен?

Что подразумевается под "работа"?

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "gcc invalid use of incomplete type"  +/
Сообщение от handler2006 email(ok) on 14-Дек-11, 19:48 
Использовать поля и методы класса, не подключая его заголовочного файла а только объявление.
Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

3. "gcc invalid use of incomplete type"  +/
Сообщение от JohnProfic (ok) on 14-Дек-11, 21:39 
> Использовать поля и методы класса, не подключая его заголовочного файла а только
> объявление.

А как компилятор узнает что они там на самом деле есть и, например, какой-то метод нужно вызывать через виртуальную таблицу? С++ не скриптовый ЯП.
Для чего такое вообще нужно?

Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

4. "gcc invalid use of incomplete type"  +/
Сообщение от handler2006 email(ok) on 15-Дек-11, 07:29 
Это больше для компиляции - когда у нас заранее нет заголовочных файлов классов, к примеру, когда  двакласса разрабатываются разными людьми. Затем весь проект будет собран вместе, но я так понял, что указатель на объект - это одно, а сам объект с его полями и методами - тут уж компилятор в растерянности: что туда пихать. Спасибо за ответы
Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

5. "gcc invalid use of incomplete type"  +/
Сообщение от parad (??) on 15-Дек-11, 14:21 
для таких целей обычно пишут заглушки чтобы тупо возвращался какой-то результат. имена функций можно сразу обговорить. реализовывать - в последуюзем. ( зри в понятие интерфейса ).

Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру