
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[216.73.216.188] |
![]() |
|
Сообщ.
#1
,
|
|
|
после попытки компиляции программы в MVisual C++ 2008 Express пишет следующие тупые ошибки:
Ошибка 1 error C2143: синтаксическая ошибка: отсутствие ";" перед "using" что-то я не помню, чтобы перед using namespace std; писался ; Ошибка 2 error C2628: недопустимый 'Temperature' с последующим 'void' (возможно, отсутствует ';') Ошибка 3 error C2556: Temperature Temperature::set(std::string): перегруженная функция отличается от 'void Temperature::set(std::string)' только возвращаемым типом Ошибка 3 error C2371: Temperature::set: переопределение; различные базовые типы тут я тоже не пойму в чём у меня могла быть ошибка. вот код: ![]() ![]() //gradus.h #pragma once #include <iostream> #include <string> using namespace std; class Temperature { private: int grad; char sys; public: Temperature(int gr = 0 , char shkala = 'C') : grad(gr) , sys(shkala) {}; void set( int gr , char shkala) {grad = gr; sys = shkala;}; void set( string str); int change(); void show(); } ![]() ![]() //gradus.cpp #include "gradus.h" void Temperature::set(string str) {...} int Temperature::change() {...} void Temperature::show() {...} |
Сообщ.
#2
,
|
|
|
При определении класса после } ставят ;
|
Сообщ.
#3
,
|
|
|
аа.. сори, не компилятор глючит, а я! вопрос в топку
![]() |
Сообщ.
#4
,
|
|
|
не ключевое, но слово обозначающее контейнер из STL std::set, правда для него требуется заголовок <set> так что дело не в этом |
Сообщ.
#5
,
|
|
|
я ещё вот хотел бы задать 1 мини-вопросик.. ради него наверно не стоит создавать отдельную тему=)
![]() ![]() class Temperature { public: Temperature(int gr = 0 , char shkala = 'C') : grad(gr) , sys(shkala) {}; void set( int gr , char shkala) {grad = gr; sys = shkala;} /* вот тут. если функция определяется в классе как встроенная, то нужно ставить ; после } ? а то компилятор вроде не ругается в обоих случаях. */ ... |
Сообщ.
#6
,
|
|
|
Цитата Potroshitell @ если функция определяется в классе как встроенная, то нужно ставить ; после } ? не нужно. |
Сообщ.
#7
,
|
|
|
Цитата zim22, не нужно. спс!) |
Сообщ.
#8
,
|
|
|
И это... того... Не пиши "using namespace" в заголовочных файлах, а то это очень "добрый" сюрприз себе на будущее
![]() Ибо этот юзинг прилетит во все те файлы, куда ты будешь включать свой gradus.h (или любой заголовочник, явно/неявно включающий gradus.h). Очень "весело" ловить ошибки в стиле "код перестал компилиться после добавки одного #include, а ведь больше ничего не менял" или "компилятор не видит метод моего класса" |