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

Исправить ошибку: 'string' does not name a type - C++

Восстановить пароль Регистрация
 
wolfdaver_77
6 / 6 / 3
Регистрация: 20.09.2016
Сообщений: 56
Завершенные тесты: 1
10.11.2016, 00:19     Исправить ошибку: 'string' does not name a type #1
Только начал изучать Qt. Есть задача, которую надо сделать без средств Qt, а просто на c++ и консоли.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#ifndef EMPLOYEE_H
#define EMPLOYEE_H
#include "printable.h"
#include <string>
 
 
#define us unsigned short
 
class Employee:public Printable
{
private:
    std::string _name;
    std::string _phone_num;
    std::string _adress;
    us _salary;
    us _get_start;
public:
    Employee();
    std::string GetName();
};
 
#endif // EMPLOYEE_H
вот объявление класса, но везде, где используется string выдает ошибку: 'string' does not name a type. Как её исправить, объясните пожалуйста.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
WarpDrive
Заблокирован
10.11.2016, 00:47     Исправить ошибку: 'string' does not name a type #2
Цитата Сообщение от wolfdaver_77 Посмотреть сообщение
. Как её исправить, объясните пожалуйста.
В коде Qt можно писать всё, что и без него. #include <string> Должно работать, может у тебя там что - то с двойными включениями или что - то в этом духе... В общем по этому отрывку ничего не скажешь, прикрепляй архив с проектом
wolfdaver_77
6 / 6 / 3
Регистрация: 20.09.2016
Сообщений: 56
Завершенные тесты: 1
10.11.2016, 01:03  [ТС]     Исправить ошибку: 'string' does not name a type #3
WarpDrive, Вот архив и скрин с ошибками, может архив не понадобится. Я уже везде стринг по отключал, ошибки те же, хз что это.
Миниатюры
Исправить ошибку: 'string' does not name a type  
Вложения
Тип файла: rar CPPQT-2016-2-PrintEmployes.rar (25.0 Кб, 3 просмотров)
0x90h
224 / 189 / 67
Регистрация: 01.10.2015
Сообщений: 646
10.11.2016, 01:18     Исправить ошибку: 'string' does not name a type #4
wolfdaver_77, ваш класс Employee является наследником класса Printable, который содержит чисто виртуальную функцию virtual void print() const = 0. Следовательно, класс Employee должен содержать реализацию этой функции.

Добавлено через 3 минуты
Насчет

Код
C:\Projects\CPPQT-2016-2-PrintEmployes\main.cpp:76: ошибка: 'endl' was not declared in this scope
     std::cout<<Taras.GetName()<<endl;
C++
1
#include <iostream>
в employee.h

И в целом ваша тема не имеет ни малейшего отношения к Qt, а ваше приложение - plain c++ application
wolfdaver_77
6 / 6 / 3
Регистрация: 20.09.2016
Сообщений: 56
Завершенные тесты: 1
10.11.2016, 02:07  [ТС]     Исправить ошибку: 'string' does not name a type #5
0x90h, я создал вопрос в этой теме только потому, что в Qt Creator ошибка, думал, что тут ей и место)
Спасибо за ответ.

Добавлено через 7 минут
0x90h, исправил то, на что Вы указали, но ошибок меньше не стало.
WarpDrive
Заблокирован
10.11.2016, 10:46     Исправить ошибку: 'string' does not name a type #6
Цитата Сообщение от wolfdaver_77 Посмотреть сообщение
исправил то, на что Вы указали, но ошибок меньше не стало.
Ох уж и стиль... Меня чуть не вывернуло, когда я проект открыл, без обид
Странные у вас преподы на Украине, заставляют делать софт на QtCreator-е, а сам Qt использовать запрещают
В общем, std::string должен нормально распознаваться, если ты конечно Qt нормально поставил... Ты знаешь, что чтоб у тебя распознавались стандартные хэдэры, я уж молчу про Qt-шные, тебе нужно ставить целиком Qt, а не только QtCreator. В комплект Qt, если ты его качаешь с официального сайта, QtCreator входит в комплект: https://www.qt.io/download-open-source/#section-2

В общем, прикрепляю архив твоего "кхе кхе" софта, который у меня собирается без ошибок, если у тебя не так - ставь Qt.
Вложения
Тип файла: rar CPPQT-2016-2-PrintEmployes.rar (22.8 Кб, 3 просмотров)
WarpDrive
Заблокирован
10.11.2016, 12:28     Исправить ошибку: 'string' does not name a type #7
Цитата Сообщение от Maxim Prishchepa Посмотреть сообщение
а по поводу QtCreator - не более чем IDE
Я бы сказал конкретнее, это просто IDE без всего, то есть голый редактор. У него нет ни встроенного компилятора, ни отладчика, ни сорцов стандартных типа iostrem или string там нет, вообще ничего там нет, в отличии от Visualtudio, в комплекте с которой поставляется всё. И это ТС должен чётко понимать, когда ставит QtCreator без комплекта Qt.
Maxim Prishchepa
Эксперт С++
 Аватар для Maxim Prishchepa
1762 / 985 / 60
Регистрация: 29.03.2010
Сообщений: 2,978
10.11.2016, 12:34     Исправить ошибку: 'string' does not name a type #8
Цитата Сообщение от WarpDrive Посмотреть сообщение
И это ТС должен чётко понимать, когда ставит QtCreator без комплекта Qt.
думаю вряд-ли ТС ставил голый креатор, без Qt-a, если учесть:
Цитата Сообщение от wolfdaver_77 Посмотреть сообщение
Только начал изучать Qt
wolfdaver_77
6 / 6 / 3
Регистрация: 20.09.2016
Сообщений: 56
Завершенные тесты: 1
10.11.2016, 14:53  [ТС]     Исправить ошибку: 'string' does not name a type #9
WarpDrive, ставил весь qt. Преподы везде странные есть) я сам не понимаю в чем фишка, курсы называются c++/qt, а дз только по с++ было. Хотя, может я что то не понял, пришел уже после половины занятий.
И хотел бы замечания по стилю услышать, если можно, хотелось бы знать что не так, что исправить надо.

Добавлено через 7 минут
WarpDrive, при запуске вашего проекта, те же ошибки(
WarpDrive
Заблокирован
10.11.2016, 15:05     Исправить ошибку: 'string' does not name a type #10
Цитата Сообщение от wolfdaver_77 Посмотреть сообщение
И хотел бы замечания по стилю услышать, если можно, хотелось бы знать что не так, что исправить надо.
Ну... Там всё не так, для начала пиши хотя бы код с табуляцией, делай пустые стоки между значимыми элементами ..ой да много чего, просто соблюдай нормальный сталь форматирования. Создай какой - нибуть класс с помощью визарда QtCreator-а и посмотри, как он оформлен

Цитата Сообщение от wolfdaver_77 Посмотреть сообщение
WarpDrive, при запуске вашего проекта, те же ошибки(
Какие ошибки - то? Не понимает, что такое std::string ? Если да - то ставь нормальный Qt. Ты его небойсь через онлайн инсталлятор ставил?
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4920 / 2663 / 243
Регистрация: 29.11.2010
Сообщений: 7,409
10.11.2016, 15:13     Исправить ошибку: 'string' does not name a type #11
Цитата Сообщение от wolfdaver_77 Посмотреть сообщение
хотел бы замечания по стилю услышать, если можно, хотелось бы знать что не так, что исправить надо.
Замечания по поводу чуть меньше десятка строк из шапки темы?
1) define поменять на using, на крайняк typedef, если нет поддержки С++11.
2) не начинать названия переменных с нижнего подчеркивания, т.к. эти имена зарезервированы для разработчиков компиляторов. Для членов класса лучше всего подойдёт префикс m_
3) get метод желательно сделать const, ведь он не изменяет состояние класса.
4) чисто субъективно - лучше сначала давать интерфейс класса т.к. так его прощу будет найти. То, что является частью внутренней реализации как раз наоборот - прятать в конец.
5) чисто субъективно - добавить пробел перед public в наследовании класса.
6) весьма странное наследование класса Работник от "Печатаемый". Налицо нарушение MVC, но для сдачи лабы это всё равно.
wolfdaver_77
6 / 6 / 3
Регистрация: 20.09.2016
Сообщений: 56
Завершенные тесты: 1
10.11.2016, 15:13  [ТС]     Исправить ошибку: 'string' does not name a type #12
WarpDrive, да, не понимает и нет, не через онлайн инсталятор. Сейчас попробую новый проект сделать, если будут те же ошибки, установлю заново.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.11.2016, 15:19     Исправить ошибку: 'string' does not name a type
Еще ссылки по теме:

C++ Встроенный string выдает ошибку
Can't resolve type 'string' C++
C++ Класс string " ошибки, не знаю как исправить

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

Или воспользуйтесь поиском по форуму:
wolfdaver_77
6 / 6 / 3
Регистрация: 20.09.2016
Сообщений: 56
Завершенные тесты: 1
10.11.2016, 15:19  [ТС]     Исправить ошибку: 'string' does not name a type #13
MrGluck, дефайн это не моё, я скачал такой уже проект, нужно дописать решение.
А за остальное спасибо. На счет 2 пункта, я в Липпмане читал, что так удобнее называть переменные класса, о 3 пункте не подумал даже, а 6 п. это условие такое)
в общем, спасибо за конкретные замечания)
Yandex
Объявления
10.11.2016, 15:19     Исправить ошибку: 'string' does not name a type
Ответ Создать тему
Опции темы

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