Форум программистов, компьютерный форум, киберфорум
Visual C++
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.78/18: Рейтинг темы: голосов - 18, средняя оценка - 4.78
0 / 0 / 0
Регистрация: 23.08.2011
Сообщений: 6

Почему не компилируется заголовочный файл?

23.08.2011, 02:35. Показов 3745. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
//run.cpp
#include <iostream>
using std::cout;
using std::endl;
 
#include "GradeBook.h"
 
int main() {
    GradeBook gradeBook1("CS 101 Programming");
    GradeBook gradeBook2("CS 102 Data Structures");
 
    cout << "gradeBook1 created for: " << gradeBook1.getCourseName()
        << endl;
    cout << "gradeBook2 created for: " << gradeBook2.getCourseName()
        << endl;
    return 0;
}
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
//GradeBook.cpp
#include <iostream>
using std::cout;
using std::endl;
 
#include "GradeBook.h"
 
GradeBook::GradeBook(string name) {
    setCourseName(name);
}
 
void GradeBook::setCourseName(string name) {
    courseName = name;
}
 
string GradeBook::getCourseName() {
    return courseName;
}
 
void GradeBook::displayMessage() {
    cout << "Welcome to the grade book for\n" << getCourseName()
        << "!" << endl;
}
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
//GradeBook.h
#include <string>
using std::string;
 
class GradeBook {
public:
    GradeBook(string);
    void setCourseName(string);
    string getCourseName();
    void displayMessage();
private:
    string courseName;
}
подскажите, почему не компилирует заголовочный файл? (абсолютный новичок в Visual)
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
23.08.2011, 02:35
Ответы с готовыми решениями:

Заголовочный файл, который компилируется в VS2017, не компилируется в Qt
В общем был класс &quot;Матрицы&quot;, который нормально работал в VS2017. Возникла необходимость использовать использовать его для создания...

Почему нельзя компилировать отдельный заголовочный файл?
Вообще можно весь код поместить в один .cpp файл. Но, как я понимаю, люди советуют все функции помещать в отдельные заголовочные файлы. А...

Почему Не Определён Ctrcmp, тема про заголовочный файл string.h
Здравствуйте вот код, компилятор пишет что не определён ctrcmp, заголовочный файл писал по разному...

11
Модератор
Эксперт по электронике
8979 / 6745 / 921
Регистрация: 14.02.2011
Сообщений: 23,856
23.08.2011, 03:23
Что есть
Цитата Сообщение от hedgehog23 Посмотреть сообщение
не компилирует
????
0
10 / 10 / 0
Регистрация: 02.08.2011
Сообщений: 28
23.08.2011, 07:29
на вскидку:

C++
1
2
3
private:
        string courseName;
};
Попробуй поставить точку с запятой после определения класса
1
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
23.08.2011, 09:42
Вот так сделай
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
40
41
42
//GradeBook.h
 
#ifndef GRADEBOOK_H
#define GADEBOOK_H
#include <iostream>
#include <string>
using std::string;
 
#pragma once//если не будет компилиться убери, но думаю всё норм сразу будет
 
class GradeBook {
public:
        GradeBook(string);
        void setCourseName(string);
        string getCourseName();
        void displayMessage();
private:
        string courseName;
}
#endif
 
//GradeBook.cpp
#include "GradeBook.h"//Как бы компилятор догадался об объявлении класса без хедера???)
using std::cout;
using std::endl;
 
GradeBook::GradeBook(string name) {
        setCourseName(name);
}
 
void GradeBook::setCourseName(string name) {
        courseName = name;
}
 
string GradeBook::getCourseName() {
        return courseName;
}
 
void GradeBook::displayMessage() {
        cout << "Welcome to the grade book for\n" << getCourseName()
                << "!" << endl;
}
Добавлено через 1 минуту
В //run.cpp, подключай только GradeBook.h и старайся избегать повторных подключений заголовчных файлов, у тебя это с iostream наблюдалось
0
Делаю внезапно и красиво
Эксперт С++
 Аватар для Deviaphan
1313 / 1228 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
24.08.2011, 07:16
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
старайся избегать повторных подключений заголовчных файлов
Какой смысл этого действа?

Цитата Сообщение от hedgehog23 Посмотреть сообщение
почему не компилирует заголовочный файл?
Заголовочные файлы ВООБЩЕ никогда и ни у кого не компилируются.
0
Модератор
Эксперт по электронике
8979 / 6745 / 921
Регистрация: 14.02.2011
Сообщений: 23,856
24.08.2011, 08:01
Цитата Сообщение от Deviaphan Посмотреть сообщение
Заголовочные файлы ВООБЩЕ никогда и ни у кого не компилируются.
Ну это как посмотреть
по грубому
весь текст копируется в файл кода
а потом то все равно компилится
0
Делаю внезапно и красиво
Эксперт С++
 Аватар для Deviaphan
1313 / 1228 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
24.08.2011, 08:05
Цитата Сообщение от ValeryS Посмотреть сообщение
Ну это как посмотреть
Я смотрю более очевидно. Для файла реализации команда Compile есть, а для заголовков - нет.
0
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
24.08.2011, 17:55
Цитата Сообщение от Deviaphan Посмотреть сообщение
Какой смысл этого действа?
- Иногда возникают грабли с тем что компилятор пишет на какую нибудь структуру или функцию что она объявлена ранее или в предыдущем блоке, у меня возникала подобная гадость когда делал CDWriter, копилятор ругался на интерфейсы IMAPI...
0
Делаю внезапно и красиво
Эксперт С++
 Аватар для Deviaphan
1313 / 1228 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
24.08.2011, 19:01
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
Иногда возникают грабли...
Это грабли с программистом, который не использует '#pragma once' или '#ifdef/#endif'.
Из-за криворукости же программистов возникают вот такие зависимости от порядка включения файлов. Очень расстраиваюсь, когда такое появляется, но бывает, да.(
0
Модератор
Эксперт по электронике
8979 / 6745 / 921
Регистрация: 14.02.2011
Сообщений: 23,856
24.08.2011, 19:43
не всегда
Цитата Сообщение от Deviaphan Посмотреть сообщение
#pragma once' или '#ifdef/#endif'.
спасают например нужна глобальная переменная видимая в разных модулях и мы пишем
C++
1
2
3
// global.h
 
int i;
и подключаем к разным с-файлам
Готово! получили при линковке "уже определена"
правда согласен с тем, что
Цитата Сообщение от Deviaphan Посмотреть сообщение
Это грабли с программистом,
предвидя вопросы делать надо так
в одном из файлов пишем
C++
1
2
3
// xxxxx.c
 
int i;
в заголовочном
C++
1
2
3
// Global.h
 
extern int i;
0
Делаю внезапно и красиво
Эксперт С++
 Аватар для Deviaphan
1313 / 1228 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
24.08.2011, 19:46
Цитата Сообщение от ValeryS Посмотреть сообщение
Готово! получили при линковке "уже определена"
Если программист идиот, то это надолго.)))

Цитата Сообщение от ValeryS Посмотреть сообщение
в одном из файлов пишем
Или static. Всякие ситуации бывают.)
0
 Аватар для Scorpion93
3 / 3 / 3
Регистрация: 31.10.2010
Сообщений: 120
22.10.2011, 00:35
C++
1
private: System::Void openTSMI_Click(System::Object^  sender, System::EventArgs^  e);
метод в
C++
1
"FrequencyDictionary.h"
cpp файл:
C++
1
2
3
4
5
#include "StdAfx.h"
#include "FrequencyDictionary.h"
void FrequencyDictionary::System::openTSMI_Click(System::Object^  sender, System::EventArgs^  e)
{
}
как правильно сделать? по-разному пробовал, эффет 0(
Подскажите, пожалуйста.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
22.10.2011, 00:35
Помогаю со студенческими работами здесь

Объявления классов в *.h, или почему просто не приписать заголовочный файл #include <QProgressBar>?
Доброго времени суток. Не пойму почему Шлее в хэдерах объявляет классы следующим образом: #ifndef PROGRESS_H #define PROGRESS_H ...

почему не компилируется ? (сбой при преобразовании в COFF: файл недопустим или поврежден)
почему не компилируется ? ( #include &lt;iostream&gt; #include &lt;string.h&gt; using namespace std; int main() { const int maxlen =...

Почему GCC не компилирует заголовочный файл пользователя ?
Здравствуйте ! При компиляции учебной программы в GCC, выдаётся сообщение &quot;No such file or directory&quot;. Компилятор не принимает...

Почему *.java файл компилируется без компилятора?
Друзья! IDE NetBeans 7.3.1. JDK установлена отдельно, там нахожу javac.exe и переименовываю его в javac_.exe. &quot;Hello word&quot; из IDE...

Вынос шаблонной функции в заголовочный файл и файл с реализацией
Имеется шаблонная функция, которую я помещаю в файл реализации templ.cpp: #include &quot;declare.h&quot; template &lt;class...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru