Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
popelyuk
8 / 8 / 2
Регистрация: 04.12.2012
Сообщений: 130
#1

Объявленный класс не воспринимается как тип

28.12.2012, 18:43. Просмотров 546. Ответов 13
Метки нет (Все метки)

Подскажите почему вылетает эта ошибка?
0
Миниатюры
Объявленный класс не воспринимается как тип  
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.12.2012, 18:43
Ответы с готовыми решениями:

typeid определяет тип указателя на базовый класс, как тип "базовый класс". Вне зависимости от присвоенного ему значения
Вот код: #include <iostream> #include <string> #include <conio.h>...

Не виден класс, объявленный в другом классе
Есть два класса, имеющие ссылки друг на друга, один из них находится внутри...

Класс как тип данных, ошибка
Подскажите пожалуйста в чем ошибка. Или предложите другой вариант пожалуйста......

Массив, объявленный как двумерный, является одномерным
Сабж в теме. Объявляю двумерный массив 5х5 строкой float mas; Затем заполняю...

Указатель на классы, объявленный как член класса
Если у кого-то сохранились какие-либо статьи, заметки в памяти на тему...

13
soon
2545 / 1310 / 177
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
28.12.2012, 18:49 #2
Пространство имен std открыто?
0
popelyuk
8 / 8 / 2
Регистрация: 04.12.2012
Сообщений: 130
28.12.2012, 20:09  [ТС] #3
Цитата Сообщение от soon Посмотреть сообщение
Пространство имен std открыто?
нет к std обращаюсь через std::something
0
I.M.
567 / 550 / 47
Регистрация: 16.12.2011
Сообщений: 1,389
28.12.2012, 20:53 #4
popelyuk, а нужный хедер подключен?
0
soon
2545 / 1310 / 177
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
28.12.2012, 20:59 #5
Цитата Сообщение от popelyuk Посмотреть сообщение
нет к std обращаюсь через std::something
А почему на скриншоте не std::basic_string?
0
I.M.
567 / 550 / 47
Регистрация: 16.12.2011
Сообщений: 1,389
28.12.2012, 21:06 #6
soon, там base_string. Я думаю, это еще один местный тип
1
soon
2545 / 1310 / 177
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
28.12.2012, 21:46 #7
I.M., проглядел, спасибо.

popelyuk, все-таки, мне кажется, что либо пространство имен не расшарено, либо файл не подключен.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
struct Foo
{
    operator const Bar() const
    {
        return Bar();
    }
};
 
int main()
{
 
    return 0;
}
0
popelyuk
8 / 8 / 2
Регистрация: 04.12.2012
Сообщений: 130
28.12.2012, 22:40  [ТС] #8
Цитата Сообщение от soon Посмотреть сообщение
I.M., проглядел, спасибо.

popelyuk, все-таки, мне кажется, что либо пространство имен не расшарено, либо файл не подключен.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
struct Foo
{
    operator const Bar() const
    {
        return Bar();
    }
};
 
int main()
{
 
    return 0;
}
всё подключено, да это мои типы они не std а в cml обявлены но здесь тоже в весь код в этом пространстве имён, кроме того я специально пробывал дописывать это пространсво никакого эффекта.
0
I.M.
567 / 550 / 47
Регистрация: 16.12.2011
Сообщений: 1,389
28.12.2012, 23:45 #9
popelyuk, судя по первому скрину, проект большой и кода много. Поэтому выкладывать весь код не прошу.
Собственно, если можете привести минимальный код, воспроизводящий ту же ошибку - было бы здорово.
Иначе вряд ли можно помочь.
0
popelyuk
8 / 8 / 2
Регистрация: 04.12.2012
Сообщений: 130
31.12.2012, 18:45  [ТС] #10
Цитата Сообщение от I.M. Посмотреть сообщение
popelyuk, судя по первому скрину, проект большой и кода много. Поэтому выкладывать весь код не прошу.
Собственно, если можете привести минимальный код, воспроизводящий ту же ошибку - было бы здорово.
Иначе вряд ли можно помочь.
занчит закоментировал я тот код с операторм приведения типа таперь ругается на кждую библиотеку что там не определены дефайны из exception.h собственно ситуация выглядит приблизительно следующим образом:
0
Миниатюры
Объявленный класс не воспринимается как тип  
I.M.
567 / 550 / 47
Регистрация: 16.12.2011
Сообщений: 1,389
31.12.2012, 19:05 #11
Ох.
Получается, что libN.h подключают exception.h, который подключает libN.h
И если все подключение идет в .h файлах, а не в .cpp, то имеем ошибку компиляции.
При перекрестном инклуде нужно использовать forward declaration.
0
popelyuk
8 / 8 / 2
Регистрация: 04.12.2012
Сообщений: 130
01.01.2013, 17:51  [ТС] #12
Цитата Сообщение от I.M. Посмотреть сообщение
Ох.
Получается, что libN.h подключают exception.h, который подключает libN.h
И если все подключение идет в .h файлах, а не в .cpp, то имеем ошибку компиляции.
При перекрестном инклюде нужно использовать forward declaration.
Я что-то сижу думаю и не могу никак сообразить почему циклическое включение вызывает проблемы, ведь в хедерах только объявления, а реализации лежат в .cpp файлах, ну кроме template классов?
0
go
Эксперт С++
3637 / 1369 / 243
Регистрация: 16.04.2009
Сообщений: 4,527
01.01.2013, 18:05 #13
popelyuk, приведите пример файлов (только дефайны и инклуды сохраняя исходный порядок следования). Я по схеме плохо понял.
0
popelyuk
8 / 8 / 2
Регистрация: 04.12.2012
Сообщений: 130
01.01.2013, 21:17  [ТС] #14
Цитата Сообщение от go Посмотреть сообщение
popelyuk, приведите пример файлов (только дефайны и инклуды сохраняя исходный порядок следования). Я по схеме плохо понял.
всё разобрался forward declaration рулит я просто не разобрался в его сути теперь подключил нужные либы в .cpp и почти всё вроде как работает, но появилась новая проблема, матерится на дефайны, вот:
0
Миниатюры
Объявленный класс не воспринимается как тип  
01.01.2013, 21:17
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.01.2013, 21:17

Пишу умножить, а воспринимается как указатель
#include <stdio.h> #include <math.h> #include <conio.h> void main() { ...

Программа воспринимается как вирус из-за автообнвления
День всем добрый! Вот весь код отвечающий за обновление: ...

Пробел воспринимается как окончание введенной строки
Нужно ввести текст с клавиатуры и найти пробелы. Проблема в том что в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru