Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
4 / 4 / 2
Регистрация: 19.08.2013
Сообщений: 26
1

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

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

Author24 — интернет-сервис помощи студентам
Укажите, что я делаю не правильно и как исправить. Ошибки, которые выдаёт компилятор: 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
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.08.2013, 14:44
Ответы с готовыми решениями:

Многофайловый код (наследование) QT
Здравствуйте, прошу помочь в решении проблемы. Есть код, который при написании в одном файле...

Многофайловый проект
Вот есть код. Помоги. Разбейте его на модуль. Я не понимаю как это сделать #include &lt;iostream&gt; ...

Многофайловый проект
1й файл main.cpp #include &lt;iostream&gt; #include &lt;locale&gt; #include &lt;Windows.h&gt; #include...

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

8
Неэпический
17870 / 10635 / 2054
Регистрация: 27.09.2012
Сообщений: 26,737
Записей в блоге: 1
23.08.2013, 14:47 2
Цитата Сообщение от Wollen Посмотреть сообщение
C++
1
2
struct t_Item; 
class List;
Это Forward declaration.
Здесь нужно полное описание классов. А в cpp уже реализацию писать.
0
4 / 4 / 2
Регистрация: 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
Неэпический
17870 / 10635 / 2054
Регистрация: 27.09.2012
Сообщений: 26,737
Записей в блоге: 1
23.08.2013, 15:11 4
http://valera.asf.ru/cpp/book/c13.html
0
4 / 4 / 2
Регистрация: 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
5498 / 4893 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
23.08.2013, 16:01 6
Цитата Сообщение от Wollen Посмотреть сообщение
Теперь ругается: "error: 'ofstream' has not been declared"
Наверное, показывает, где нет объявления?
0
4 / 4 / 2
Регистрация: 19.08.2013
Сообщений: 26
23.08.2013, 17:41  [ТС] 7
Цитата Сообщение от alsav22 Посмотреть сообщение
Наверное, показывает, где нет объявления?
Показывает, что нет объявления в заголовочном файле в строчке
C++
1
void WriteFile(ofstream& fileName);
0
5498 / 4893 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
23.08.2013, 17:46 8
Если добавить #include <fstream> и так написать:
C++
1
void WriteFile(std::ofstream& fileName);
1
4 / 4 / 2
Регистрация: 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
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.08.2013, 18:01
Помогаю со студенческими работами здесь

Многофайловый проект
Доброго времени суток. В проекте 4 файла. Почему при первом варианте все работает, а во втором нет?...

Многофайловый проект
скажите пожалуйста, зачем несколько файлов в файлах исходного кода? для чего это нужно?

Многофайловый проект
Таки всеми правдами и неправдами создал из 3 файлов &quot;тестик&quot;. И собственно не хочет это дело...

Многофайловый проект
Здравствуйте! Помогите создать Многофайловый проект. Пожалуйста. Создать абстрактный класс ...

Многофайловый проект
Вообщем проблема такая, в многофайловом проекте не выводит массив на экран #include &quot;Libraries.h&quot;...

Многофайловый проект
Всем привет, уже довольно долго пытаюсь собрать проект из трех файлов: заголовочный, файл...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru