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

Компиляция с заголовочным файлом - C++

Восстановить пароль Регистрация
 
Despice
 Аватар для Despice
1 / 1 / 0
Регистрация: 05.05.2011
Сообщений: 31
02.06.2011, 15:24     Компиляция с заголовочным файлом #1
Стыдно спрашивать но все же.
Никак не пойму как компилировать несколько файлов с заголовочным файлом.
Вот что мне отвечает Dev-Cpp
D:\...\main.cpp In function `int main()':
20 D:\...\main.cpp missing terminating " character
25 D:\...\main.cpp expected `)' before ';' token
D:\...\Makefile.win [Build Error] [Objects/MingW/main.o] Error 1

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
//main.cpp
#include <iostream>
 
using std::cout;
using std::endl;
 
#include "GradeBook.h"
 
    int main()
    {
        
        GradeBook gradeBook1( "CS101 Introduction to Programming in C++" );
        GradeBook gradeBook2( "CS102 C++ Data Structures" );
        
        cout << "gradeBook1's initial course name is: "
            << gradeBook1.getCourseName()
            << "\ngradeBook2's initial course name is: "
            << gradeBook2.getCourseName() << endl;
        
        gradeBook1.setCourseName ( "CS101 C++ Programming );
        
        cout << "\ngradeBook1's course name is: "
            << gradeBook1.getCourseName()
            << "\ngradeBook2's course name is: "
            << gradeBook2.getCourseName() << endl;
        
        
    system("PAUSE");
    return 0;
    }
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
//GradeBook.h
#include <string>
using std::string;
 
    class GradeBook
    {
        public:
            GradeBook ( string );
            void setCourseName ( string );
            string getCourseName();
            void displayMessage();
        private:
            string courseName;
    };
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
//GradeBook.cpp
#include <iostream>
using std::cout;
using std::endl;
 
#include "GradeBook.h"
 
    GradeBook::GradeBook ( string name )
    {
        setCourseName ( name );
    }
    
    
    void GradeBook::setCourseName ( string name )
    {
        if ( name.length() <= 25 )
          courseName = name;
          
        if ( name.length() > 25 )
        {
            courseName = name.substr( 0, 25 );
            
            cout << "Name \"" << name << "\" exceeds maximum length. \n"
            << "Limiting cu=ourseName to first 25 characters. \n" << endl;
        }
    }
    
    
    string GradeBook::getCourseName()
    {
        return courseName;
    }
    
    
    void GradeBook::displayMessage()
    {
        cout << "Welcome to the grade book for\n" << getCourseName()
        << "!" << endl;
    }
подскажите в каком порядке и как их компилировать
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.06.2011, 15:24     Компиляция с заголовочным файлом
Посмотрите здесь:

C++ Cоздание проги с заголовочным файлом
работа с заголовочным файлом C++
C++ Программа с заголовочным файлом (с++)
C++ Компиляция
C++ Подскажите с заголовочным файлом
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
m1Rr0r
 Аватар для m1Rr0r
247 / 230 / 15
Регистрация: 05.02.2010
Сообщений: 3,213
Завершенные тесты: 2
02.06.2011, 15:30     Компиляция с заголовочным файлом #2
Цитата Сообщение от Despice Посмотреть сообщение
gradeBook1.setCourseName ( "CS101 C++ Programming );
строка 23 пропуск "
порядок не знаю )
Despice
 Аватар для Despice
1 / 1 / 0
Регистрация: 05.05.2011
Сообщений: 31
02.06.2011, 15:41  [ТС]     Компиляция с заголовочным файлом #3
сижу красный думал может не так скомпилировал, невнимательность
denix
 Аватар для denix
62 / 62 / 2
Регистрация: 11.01.2009
Сообщений: 130
02.06.2011, 15:42     Компиляция с заголовочным файлом #4
Цитата Сообщение от Despice Посмотреть сообщение
Никак не пойму как компилировать несколько файлов с заголовочным файлом.
запомни! каждый *.с и *.cpp файл ты сначала компилируешь в соответствующий модуль *.o.
затем все модули ты собираешь в исполнимый файл.
Monkey_2
 Аватар для Monkey_2
34 / 34 / 4
Регистрация: 11.02.2009
Сообщений: 84
02.06.2011, 15:47     Компиляция с заголовочным файлом #5
в //GradeBook.h добавь #include "GradeBook.cpp", из GradeBook.cpp убери обявление GradeBook.h
и компили main.cpp доложно получится если ошибок нет
Despice
 Аватар для Despice
1 / 1 / 0
Регистрация: 05.05.2011
Сообщений: 31
02.06.2011, 15:59  [ТС]     Компиляция с заголовочным файлом #6
доставил пропущеный " и скопилировалось нормально, но стало интересно
Цитата Сообщение от denix Посмотреть сообщение
запомни! каждый *.с и *.cpp файл ты сначала компилируешь в соответствующий модуль *.o.
затем все модули ты собираешь в исполнимый файл.
как?
breeve
 Аватар для breeve
73 / 73 / 14
Регистрация: 01.08.2009
Сообщений: 177
02.06.2011, 16:05     Компиляция с заголовочным файлом #7
В заголовочном файле в начале добавь:
#ifndef GRADEBOOK
#define GRADEBOOK

тут класс

#endif
pito211
 Аватар для pito211
186 / 173 / 8
Регистрация: 22.03.2010
Сообщений: 612
02.06.2011, 16:06     Компиляция с заголовочным файлом #8
Цитата Сообщение от Despice Посмотреть сообщение
using std::cout;
using std::endl;
использование директивы using в глобальной области видимости во включаемых файлах плохо. Помести свой класс в пространство имён и внутри него напиши этот using
denix
 Аватар для denix
62 / 62 / 2
Регистрация: 11.01.2009
Сообщений: 130
02.06.2011, 16:11     Компиляция с заголовочным файлом #9
Цитата Сообщение от Despice Посмотреть сообщение
доставил пропущеный " и скопилировалось нормально, но стало интересно


как?
C
1
g++ -o program_name список_объектных_файлов.
например:

у тебя есть два файла .cpp, file_1.cpp и file_2.cpp.

сначала ты компилируешь их, например,

C
1
2
g++ -c file_1.cpp
g++ -c file_2.cpp
если все правильно, у тебя появяться два объектных файла file_1.o и file_1.o.

затем собираешь все в один исполняемый модуль( программу в твоем случае )


C
1
g++ -o my_program file_1.o file_2.o
у тебя получиться исполняемый файл my_program
Despice
 Аватар для Despice
1 / 1 / 0
Регистрация: 05.05.2011
Сообщений: 31
02.06.2011, 16:16  [ТС]     Компиляция с заголовочным файлом #10
Цитата Сообщение от pito211 Посмотреть сообщение
использование директивы using в глобальной области видимости во включаемых файлах плохо. Помести свой класс в пространство имён и внутри него напиши этот using
так и было VS не воспринимал пока не поменял
всем спасибо
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.06.2011, 16:47     Компиляция с заголовочным файлом
Еще ссылки по теме:

C++ Компиляция
C++ Компиляция
Невозможно открыть include с заголовочным файлом C++

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

Или воспользуйтесь поиском по форуму:
kravam
быдлокодер
 Аватар для kravam
1512 / 872 / 44
Регистрация: 04.06.2008
Сообщений: 5,265
02.06.2011, 16:47     Компиляция с заголовочным файлом #11
Может пригодиться
Как в DEV C++ добавить опцию компилятора *cpp?
Yandex
Объявления
02.06.2011, 16:47     Компиляция с заголовочным файлом
Ответ Создать тему
Опции темы

Текущее время: 23:48. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru