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

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

Войти
Регистрация
Восстановить пароль
 
Wollen
3 / 3 / 1
Регистрация: 19.08.2013
Сообщений: 26
#1

Многофайловый код - C++

23.08.2013, 14:44. Просмотров 382. Ответов 8
Метки нет (Все метки)

Укажите, что я делаю не правильно и как исправить. Ошибки, которые выдаёт компилятор: invalid use of incomplete type 'struct List' и forward declaration of 'struct List'.

main.cpp
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
#include <fstream>
#include <conio.h>
#include "MyListClass5A.h"
using namespace std;
void Action(List& abc){
    abc.Write();
    ...
}
int main(){
    List abc;
    Action(abc);
    ...
}
MyListClass5A.h
C++
1
2
3
4
5
#ifndef MYLISTCLASS5A_H_INCLUDED
#define MYLISTCLASS5A_H_INCLUDED
struct t_Item;
class List;
#endif // MYLISTCLASS5A_H_INCLUDED
MyListClass5A.cpp
C++
1
2
3
4
5
6
7
#include "MyListClass5A.h"
struct t_Item{
   ...
};
class List{
    ...
};
Кликните здесь для просмотра всего текста
Разделение кода на несколько файлов Эту тему читал. Делал по ней первым способом.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.08.2013, 14:44
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Многофайловый код (C++):

Многофайловый проект - C++
Собственно вопрос, скорее, к работе devc++ Ну вот захотел для &quot;завтраки&quot; собрать МП из 2 файлов 1 - main.cpp (ну как иначе) #include...

Многофайловый проект в VS - C++
Всем привет. Добавил новый элемент .cpp в свой проект, в котором уже есть другой .cpp, и компилятор отказывается компилировать новый...

Многофайловый проект - C++
Таки всеми правдами и неправдами создал из 3 файлов &quot;тестик&quot;. И собственно не хочет это дело компилировать. Где я тут напортачил ? :( 1.)...

Многофайловый проект - C++
Здравия всем! Опять зеленый метушится! Перед, непосредственно, главным вопросом, хочу показать то, что мне известно (если я не...

Многофайловый проект - C++
1й файл main.cpp #include &lt;iostream&gt; #include &lt;locale&gt; #include &lt;Windows.h&gt; #include &quot;My_Struct.h&quot; using namespace std; ...

VS 2015, многофайловый проект - C++
Всем привет. У меня возник вопрос по VS 2015 Community. Всегда пользовался Dev C++ но вдруг на 3 курсе препод сказал чтобы перешли на...

8
Croessmah
Эксперт CЭксперт С++
13514 / 7673 / 867
Регистрация: 27.09.2012
Сообщений: 18,896
Записей в блоге: 3
Завершенные тесты: 1
23.08.2013, 14:47 #2
Цитата Сообщение от Wollen Посмотреть сообщение
C++
1
2
struct t_Item; 
class List;
Это Forward declaration.
Здесь нужно полное описание классов. А в cpp уже реализацию писать.
0
Wollen
3 / 3 / 1
Регистрация: 19.08.2013
Сообщений: 26
23.08.2013, 15:04  [ТС] #3
Цитата Сообщение от Croessmah Посмотреть сообщение
Это Forward declaration.
Здесь нужно полное описание классов. А в cpp уже реализацию писать.
А для такого класса как будет выглядеть полное описание?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
class List{
    t_Item* end;
    t_Item* items;
    unsigned count;
    public:
    List(){
        items=0;
        end=0;
        count=0;
    }
    ~List(){
        Clear();
    }
    void Clear(){
        for(unsigned i=0;i<count;++i){
            DelItem(0);
        }
    }
    unsigned GetCount(){
        return count;
    }
    ...
};
0
Croessmah
Эксперт CЭксперт С++
13514 / 7673 / 867
Регистрация: 27.09.2012
Сообщений: 18,896
Записей в блоге: 3
Завершенные тесты: 1
23.08.2013, 15:11 #4
http://valera.asf.ru/cpp/book/c13.html
0
Wollen
3 / 3 / 1
Регистрация: 19.08.2013
Сообщений: 26
23.08.2013, 15:54  [ТС] #5
Цитата Сообщение от Croessmah Посмотреть сообщение
Добавил полное описание класса.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
//MyListClass5A.h
#ifndef MYLISTCLASS5A_H_INCLUDED
#define MYLISTCLASS5A_H_INCLUDED
struct t_Item;
class List{
    public:
    List();
    ~List();
    unsigned GetCount();
    void Add(char val);
    void Clear();
    void DelItem(unsigned n);
    void InsItem(unsigned n,char c);
    void Write(bool reverse=0);
    void WriteFile(ofstream& fileName);
    void ChangeNum();
    void DelNum();
    void ChangeTriple();
    void ChangeDouble();
    void Enter(unsigned N);
};
#endif // MYLISTCLASS5A_H_INCLUDED
Теперь ругается: "error: 'ofstream' has not been declared". У меня ofstream объявлен в функции main(). Пробовал добавлять #include <fstream> и в заголовчный файл - не помогает.
0
alsav22
5425 / 4820 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
23.08.2013, 16:01 #6
Цитата Сообщение от Wollen Посмотреть сообщение
Теперь ругается: "error: 'ofstream' has not been declared"
Наверное, показывает, где нет объявления?
0
Wollen
3 / 3 / 1
Регистрация: 19.08.2013
Сообщений: 26
23.08.2013, 17:41  [ТС] #7
Цитата Сообщение от alsav22 Посмотреть сообщение
Наверное, показывает, где нет объявления?
Показывает, что нет объявления в заголовочном файле в строчке
C++
1
void WriteFile(ofstream& fileName);
0
alsav22
5425 / 4820 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
23.08.2013, 17:46 #8
Если добавить #include <fstream> и так написать:
C++
1
void WriteFile(std::ofstream& fileName);
1
Wollen
3 / 3 / 1
Регистрация: 19.08.2013
Сообщений: 26
23.08.2013, 18:01  [ТС] #9
Цитата Сообщение от alsav22 Посмотреть сообщение
Если добавить #include <fstream> и так написать:
C++
1
void WriteFile(std::ofstream& fileName);
спасибо
0
23.08.2013, 18:01
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.08.2013, 18:01
Привет! Вот еще темы с ответами:

Разбиение на многофайловый проект - C++
Имеется вот такой кодик, надо разбить на многофайловый, где: 1.main в одном *.cpp 2.остальные функции в другом *.cpp 3.ну и структура...

Многофайловый проект с функциями в классе - C++
создаю класс в ней функцию и запихиваю все программу, все работает. Но мне нужно сделать несколько функций я разбиваю программу создаю...

Вычисление площади круга (многофайловый проект) - C++
Реализуйте программу по расчету площади окружности из предыдущей работы в многофайловом варианте, в котором в функции main...

Многофайловый программы, переопредиление множественная инициализация - C++
Всем привет при написании многофайловых программ столкнулся с такой проблемой как переопредиление. Я посторался кратко съэмитировать...


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

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

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