Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 31, средняя оценка - 4.74
m0
2 / 2 / 1
Регистрация: 03.12.2013
Сообщений: 145
#1

Ошибка C4430: missing type specifier - int assumed - C++

04.08.2014, 17:43. Просмотров 5088. Ответов 17
Метки нет (Все метки)

Вот так простенький код
C++
1
2
3
4
5
6
7
8
#pragma once
#include "A.h"
class B
{
public:
    B(void);
    ~B(void);
};
C++
1
2
3
4
5
6
7
8
9
#pragma once
#include "B.h"
class A
{
public:
    A(void);
    virtual ~A(void);
    B b;
};
Ругается на переменную B b; Как тогда объявить переменную типа В?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.08.2014, 17:43
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Ошибка C4430: missing type specifier - int assumed (C++):

С++ ошибка error C4430: missing type specifier - int assumed. Note: C++ does not support default-int - C++
Помогите, как исправить данную ошибку. error C4430: missing type specifier - int assumed. Note: C++ does not support default-int Писала...

Error C4430: missing type specifier - int assumed. Note: C++ does not support default-int - C++
1>d:\program files\microsoft visual studio 9.0\visual studio 2008\projects\lab1\task5\task5\task5.cpp(6) : error C4430: missing type...

Ошибка "missing type specifier - int assumed" В шаблоне класса - C++
#include<iostream> using namespace std; int i; template <typename T> class Masiv { public: Masiv(int =...

Ошибка "error C4430: missing type specifier" при работе с fstream - C++
Добрый день. Работаю над сохранением и загрузкой файлов. Для этого использую библиотеку <fstream>, создаю обьект класса fstream. А...

Шаблон класса. Ошибка `missing type specifier` - C++
Вот код: template <int value, typename type> class Class { public: type Array; type Metod(type x); };

Missing type specifier - C++
Добрый день. Подскажите, пожалуйста, как исправить данную ошибку. Пишет "missing type specifier - int assumed. Note: C++ does not support...

17
CyberSolver
101 / 74 / 17
Регистрация: 23.07.2014
Сообщений: 686
Записей в блоге: 1
04.08.2014, 17:47 #2
m0, вы хотите циклическое включение заголовочных файлов устроить? Не выйдет.
0
m0
2 / 2 / 1
Регистрация: 03.12.2013
Сообщений: 145
04.08.2014, 18:09  [ТС] #3
Окей, что мне делать?
0
ValeryS
Модератор
6654 / 5063 / 470
Регистрация: 14.02.2011
Сообщений: 16,933
04.08.2014, 18:19 #4
Цитата Сообщение от m0 Посмотреть сообщение
Окей, что мне делать?
Выбросить одно включение и объявить класс
типа так
C++
1
2
3
4
5
6
7
8
9
#pragma once
class B;
class A
{
public:
    A(void);
    virtual ~A(void);
    B b;
};
0
CyberSolver
101 / 74 / 17
Регистрация: 23.07.2014
Сообщений: 686
Записей в блоге: 1
04.08.2014, 18:25 #5
m0, или вообще убрать #include "A.h". Разве классу B класс A нужен? Если они используют что-то общее (typedef'ы, например), вынесите это общее в отдельный хэдер.
0
m0
2 / 2 / 1
Регистрация: 03.12.2013
Сообщений: 145
04.08.2014, 18:41  [ТС] #6
CyberSolver, Да нужен, я просто привел простой пример. Мне нужно чтобы у каждого класса была переменная с типом другого.
C++
1
2
3
4
5
6
7
8
9
#pragma once
#include "A.h"
class B
{
public:
    B(void);
    ~B(void);
    A* a;
};
C++
1
2
3
4
5
6
7
8
9
#pragma once
#include "B.h"
class A
{
public:
    A(void);
    virtual ~A(void);
    B* b;
};
Error 2 error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
Error 3 error C2143: syntax error : missing ';' before '*'
0
CyberSolver
101 / 74 / 17
Регистрация: 23.07.2014
Сообщений: 686
Записей в блоге: 1
04.08.2014, 18:43 #7
m0, тогда не парьтесь и объявите их в одном месте.
0
m0
2 / 2 / 1
Регистрация: 03.12.2013
Сообщений: 145
04.08.2014, 20:09  [ТС] #8
CyberSolver, Ну это я здесь два простеньких класса привел, на самом деле у меня два больших класса, и мне нужна такая переменная в каждом из них.
0
CyberSolver
101 / 74 / 17
Регистрация: 23.07.2014
Сообщений: 686
Записей в блоге: 1
04.08.2014, 20:18 #9
m0, ну если они содержат по указателю друг на друга, и вы непременно хотите разделения - на напишите что-ли отдельный заголовочник
C++
1
2
class A;
class B;
и включите в оба.

Если не указатели, а сами - придется пихать в один.
1
m0
2 / 2 / 1
Регистрация: 03.12.2013
Сообщений: 145
04.08.2014, 20:20  [ТС] #10
CyberSolver, Про отдельный заголовочный файл не понял
0
CyberSolver
101 / 74 / 17
Регистрация: 23.07.2014
Сообщений: 686
Записей в блоге: 1
04.08.2014, 20:24 #11
Цитата Сообщение от CyberSolver Посмотреть сообщение
Если они используют что-то общее (typedef'ы, например), вынесите это общее в отдельный хэдер.
m0, я про это. Пусть в отдельном хэдере просто будет
Цитата Сообщение от CyberSolver Посмотреть сообщение
C++
1
2
class A;
class B;
раз пошла такая пьянка. Я же не знаю вашей задачи, так что могу советовать только общее: брось каку и так далее.
0
m0
2 / 2 / 1
Регистрация: 03.12.2013
Сообщений: 145
04.08.2014, 20:27  [ТС] #12
Фак, есть какая-то книга где в качестве примера проектируется реальное приложение? желательно через тестирование. А то учебные примеры слишком унылы.
0
uglyPinokkio
326 / 229 / 41
Регистрация: 30.05.2014
Сообщений: 682
04.08.2014, 20:33 #13
Это называется forward declaration

http://www.developingthefuture.net/f...arations-in-c/
1
ValeryS
Модератор
6654 / 5063 / 470
Регистрация: 14.02.2011
Сообщений: 16,933
04.08.2014, 20:39 #14
Цитата Сообщение от CyberSolver Посмотреть сообщение
Если не указатели, а сами - придется пихать в один
только указатели иначе не скомпилится
например
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
class A;
class B;
class A
{
public:
 int i1;
 B b;
}
 
class B
{
public:
 int i1;
 A a;
}
каков размер объектов данных классов?
0
m0
2 / 2 / 1
Регистрация: 03.12.2013
Сообщений: 145
04.08.2014, 20:41  [ТС] #15
ValeryS, да большой, поле класса будет содержать массив координат вершин. А их до миллиона может быть и в каждой x, y, z -int;
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.08.2014, 20:41
Привет! Вот еще темы с ответами:

Ошибка C4430: отсутствует спецификатор типа - предполагается int - C++
error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию. Подскажите как исправить...

Incomplete type used in nested type specifier - Итерация по списку аргументов - C++
Здравствуйте! Пытаюсь написать утилитарную структуру для применения шаблонной функции на списке аргументов. #include <tuple> ...

Ошибка: "C4430 отсутствует спецификатор типа - предполагается int..." - C++
Гайз, помогите, только начинаю писать на С++, такая ошибка: "C4430 отсутствует спецификатор типа - предполагается int. Примечание. C++ не...

Expected type-specifier - C++
Что нужно исправить в этих классах чтоб все работало? http://prntscr.com/b6z111 (ошибки) П.5.18 Правил Запрещено размещать задания и...


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

Или воспользуйтесь поиском по форуму:
15
Yandex
Объявления
04.08.2014, 20:41
Ответ Создать тему
Опции темы

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