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

Не распознает класс - C++

Восстановить пароль Регистрация
 
 
r00712
0 / 0 / 0
Регистрация: 07.09.2013
Сообщений: 108
07.02.2014, 20:17     Не распознает класс #1
Вообщем код файлы Prepod.h:
C++ (Qt)
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
#ifndef PREPOD_H_
#define PREPOD_H_
#include <string>
 // объявление класса
class Prepod
{
private:
    std::string fam; //фамилия
    std::string name; //имя
    std::string post ;//должность
    std::string kaf; //кафедра
public:
    
        void set_name(std::string prepod_name);
 
        // Получение имени препода
        std::string get_name();
 
        void set_fam(std::string prepod_fam);
         std::string get_fam();
 
 
         void set_post(std::string prepod_post);
         std::string get_post();
 
         void set_kaf(std::string prepod_kaf);
         std::string get_kaf();
 
};
 
 
#endif
Тут все норм, определяю поля с данными класса и методы.
Файл prepod.cpp:
C++ (Qt)
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
#include "prepod.h"
#include "stdafx.h"
#include <string>
 
 
 void Prepod::set_name(std::string prepod_name)  // Установка имени препода
        {
            Prepod::name = prepod_name;
        }
 
        // Получение имени препода
        std::string Prepod::get_name(){
          return name;
        }
 
        void Prepod::set_fam(std::string prepod_fam)// Установка фамилии препода
        {
            Prepod::fam=prepod_fam;
        } // Получение фамилии препода
         std::string Prepod::get_fam(){
          return fam;
        }
 
 
         void Prepod::set_post(std::string prepod_post) // Установка должности препода
         {
            Prepod::post=prepod_post;
        } 
         // Получение имени препода
         std::string Prepod::get_post(){
          return post;
        }
 
         void Prepod::set_kaf(std::string prepod_kaf){
            Prepod::kaf=prepod_kaf;
        }
         std::string Prepod::get_kaf(){
          return kaf;
        }
И тут же сразу начинаются ошибки, типа "error C2653: Prepod: не является именем класса или пространства имен" , хотя Prepod-как раз имя класса!
И соответственно ошибки - post,kaf,name,fam - необъявленные идентификаторы...

Добавлено через 4 минуты
Помогите пожалуйста!
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
jurok_85
226 / 209 / 70
Регистрация: 21.02.2013
Сообщений: 494
07.02.2014, 20:18     Не распознает класс #2
к проекту оба файла подключены ? каким компилятором пользуетесь?
r00712
0 / 0 / 0
Регистрация: 07.09.2013
Сообщений: 108
07.02.2014, 20:22  [ТС]     Не распознает класс #3
Компилятор - Visual Studio
KOPOJI
Модератор
 Аватар для KOPOJI
16242 / 6453 / 390
Регистрация: 12.06.2012
Сообщений: 19,348
07.02.2014, 20:27     Не распознает класс #4
Цитата Сообщение от r00712 Посмотреть сообщение
C++
1
Prepod::name = prepod_name;
C++
1
name = prepod_name;
Аналогично в других местах.
jurok_85
226 / 209 / 70
Регистрация: 21.02.2013
Сообщений: 494
07.02.2014, 20:28     Не распознает класс #5
файлы создавал таким путем: Проект -> Добавить новый элемент...
?

Добавлено через 1 минуту
а ну KOPOJI уже разобрался
r00712
0 / 0 / 0
Регистрация: 07.09.2013
Сообщений: 108
07.02.2014, 20:34  [ТС]     Не распознает класс #6
Цитата Сообщение от KOPOJI Посмотреть сообщение
C++
1
name = prepod_name;
Аналогично в других местах.
Исправил, кол-во ошибок уменьшилось, но все же 16 штук осталось..)
C++ (Qt)
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
#include "prepod.h"
#include "stdafx.h"
#include <string>
 
 
 void Prepod::set_name(std::string prepod_name)  // Установка имени препода
        {
          name = prepod_name;
        }
 
        // Получение имени препода
        std::string Prepod::get_name(){
          return name;
        }
 
        void Prepod::set_fam(std::string prepod_fam)// Установка фамилии препода
        {
            fam=prepod_fam;
        } // Получение фамилии препода
         std::string Prepod::get_fam(){
          return fam;
        }
 
 
         void Prepod:: set_post(std::string prepod_post) // Установка должности препода
         {
             post=prepod_post;
        } 
         // Получение имени препода
         std::string Prepod:: get_post(){
          return post;
        }
 
         void Prepod:: set_kaf(std::string prepod_kaf){
             kaf=prepod_kaf;
        }
         std::string Prepod:: get_kaf(){
          return kaf;
        }
post,kaf,name,fam - необъявленные идентификаторы, а Prepod все еще не является именем класса
KOPOJI
Модератор
 Аватар для KOPOJI
16242 / 6453 / 390
Регистрация: 12.06.2012
Сообщений: 19,348
07.02.2014, 20:37     Не распознает класс #7

Не по теме:

Цитата Сообщение от jurok_85 Посмотреть сообщение
а ну KOPOJI уже разобрался
вообще, насколько помню, доступ должен предоставляться и так, как в примере, поэтому просто предположение..


А сам код main показать не хотите? И да, необъявленные или неинициализированные?
r00712
0 / 0 / 0
Регистрация: 07.09.2013
Сообщений: 108
07.02.2014, 20:41  [ТС]     Не распознает класс #8
C++ (Qt)
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
int _tmain(int argc, _TCHAR* argv[])
{
    setlocale(LC_ALL, "RUS");
    Prepod Pr1;
    std::string name;
    std::string fam;
    std::string post;
    std::string kaf;
    // Ввод имени с клавиатуры
    std::cout << "Name: ";
    getline(std::cin, name);
 
    // Ввод фамилии
    std::cout << "Fam: ";
    getline(std::cin, fam);
 
        std::cout << "Post: ";
    getline(std::cin, post);
 
        std::cout << "Kaf: ";
    getline(std::cin, kaf);
 
    // Сохранение имени и фамилии в объект класса Prepod
 
 
 
    return 0;
}
Добавлено через 2 минуты
Идентификаторы именно необъявленные.
jurok_85
226 / 209 / 70
Регистрация: 21.02.2013
Сообщений: 494
07.02.2014, 20:42     Не распознает класс #9
не тут все таки наверно неправильно файлы подсоединены к проекту
потому что у меня все вроде работает когда такую main() программу пишу
C++
1
2
3
4
5
6
7
8
9
10
#include <iostream>
#include "prepod.h"
#include <string>
int main()
{
    Prepod p;
    std::string str("Vanja");
    p.set_name( str);
    std::cout << p.get_name();
}
на code::blocks
KOPOJI
Модератор
 Аватар для KOPOJI
16242 / 6453 / 390
Регистрация: 12.06.2012
Сообщений: 19,348
07.02.2014, 20:44     Не распознает класс #10
Это не весь код. Оставшаяся часть под секретом?
r00712
0 / 0 / 0
Регистрация: 07.09.2013
Сообщений: 108
07.02.2014, 20:45  [ТС]     Не распознает класс #11
C++ (Qt)
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
#include "stdafx.h"
#include <iostream>
#include "prepod.h"
using namespace std;
 
 
 
int _tmain(int argc, _TCHAR* argv[])
{
    setlocale(LC_ALL, "RUS");
    Prepod Pr1;
    std::string name;
    std::string fam;
    std::string post;
    std::string kaf;
    // Ввод имени с клавиатуры
    std::cout << "Name: ";
    getline(std::cin, name);
 
    // Ввод фамилии
    std::cout << "Fam: ";
    getline(std::cin, fam);
 
        std::cout << "Post: ";
    getline(std::cin, post);
 
        std::cout << "Kaf: ";
    getline(std::cin, kaf);
 
    // Сохранение имени и фамилии в объект класса Students
 
 
 
    return 0;
}
KOPOJI
Модератор
 Аватар для KOPOJI
16242 / 6453 / 390
Регистрация: 12.06.2012
Сообщений: 19,348
07.02.2014, 20:46     Не распознает класс #12

Не по теме:

хотя вообще, бред какой-то, все должно работать вроде



Добавлено через 36 секунд
Цитата Сообщение от r00712 Посмотреть сообщение
// Сохранение имени и фамилии в объект класса Students
Я правильно понял - что это просто коммент, и в коде ничего такого нет?
r00712
0 / 0 / 0
Регистрация: 07.09.2013
Сообщений: 108
07.02.2014, 20:49  [ТС]     Не распознает класс #13
Да, просто коммент. Весь код я выложил.
KOPOJI
Модератор
 Аватар для KOPOJI
16242 / 6453 / 390
Регистрация: 12.06.2012
Сообщений: 19,348
07.02.2014, 20:53     Не распознает класс #14
r00712, тогда данной ошибки не может возникнуть - вы объект (Pr1) не трогаете, только создаете и все. Конструктор вы не переопределяли, следовательно, он пустой. Все, дальше вы о нем забываете
r00712
0 / 0 / 0
Регистрация: 07.09.2013
Сообщений: 108
07.02.2014, 21:08  [ТС]     Не распознает класс #15
Увы, они есть...Все ошибки в файле prepod.cpp
C++ (Qt)
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
#include "prepod.h"
#include "stdafx.h"
#include <string>
 
 
 void Prepod::set_name(std::string prepod_name)  // error C2653: Prepod: не является именем класса или пространства имен
        {
          name = prepod_name;
        }
 
        // Получение имени препода
        std::string Prepod::get_name(){ //error C2653: Prepod: не является именем класса или пространства имен
          return name;
        }
 
        void Prepod::set_fam(std::string prepod_fam)//error C2653: Prepod: не является именем класса или пространства имен
        {
            fam=prepod_fam;
        } // Получение фамилии препода
         std::string Prepod::get_fam(){
          return fam;
        }
 
 
         void Prepod:: set_post(std::string prepod_post) // Установка должности препода
         {
             post=prepod_post;
        } 
         // Получение имени препода
         std::string Prepod:: get_post(){
          return post;
        }
 
         void Prepod:: set_kaf(std::string prepod_kaf){
             kaf=prepod_kaf;
        }
         std::string Prepod:: get_kaf(){
          return kaf;
        }
Добавлено через 5 минут
Мб проблема с заголовочным файлом prepod.h?
C++ (Qt)
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
#ifndef PREPOD_H_
#define PREPOD_H_
#include <string>
 // объявление класса
class Prepod
{
private:
    std::string fam; //фамилия
    std::string name; //имя
    std::string post ;//должность
    std::string kaf; //кафедра
public:
    
        void set_name(std::string prepod_name);
 
        // Получение имени препода
        std::string get_name();
 
        void set_fam(std::string prepod_fam);
         std::string get_fam();
 
 
         void set_post(std::string prepod_post);
         std::string get_post();
 
         void set_kaf(std::string prepod_kaf);
         std::string get_kaf();
 
};
 
 
#endif
KOPOJI
Модератор
 Аватар для KOPOJI
16242 / 6453 / 390
Регистрация: 12.06.2012
Сообщений: 19,348
07.02.2014, 21:09     Не распознает класс #16

Не по теме:

даже не знаю, в чем может быть дело - все должно работать. Попробуйте пересоздать все заново



Добавлено через 56 секунд
а все файлы находятся в одной директории?
r00712
0 / 0 / 0
Регистрация: 07.09.2013
Сообщений: 108
07.02.2014, 21:11  [ТС]     Не распознает класс #17
Да, все в одной директории?
KOPOJI
Модератор
 Аватар для KOPOJI
16242 / 6453 / 390
Регистрация: 12.06.2012
Сообщений: 19,348
07.02.2014, 21:13     Не распознает класс #18
Попробуйте пересоздать проект заново.. Даже не знаю, что там может быть не так
r00712
0 / 0 / 0
Регистрация: 07.09.2013
Сообщений: 108
07.02.2014, 21:23  [ТС]     Не распознает класс #19
Цитата Сообщение от KOPOJI Посмотреть сообщение
Попробуйте пересоздать проект заново.. Даже не знаю, что там может быть не так
Пересоздал проект, все те же ошибки в том же кол-ве
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.02.2014, 21:31     Не распознает класс
Еще ссылки по теме:

Не распознает String C++
C++ Яндекс не распознает имя отправителя почты
C++ Нейронные сети. Написать перцептрон, который распознает введеную букву

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

Или воспользуйтесь поиском по форуму:
KOPOJI
Модератор
 Аватар для KOPOJI
16242 / 6453 / 390
Регистрация: 12.06.2012
Сообщений: 19,348
07.02.2014, 21:31     Не распознает класс #20
Цитата Сообщение от r00712 Посмотреть сообщение
файлы Prepod.h:
Цитата Сообщение от r00712 Посмотреть сообщение
#include "prepod.h"
В винде вроде как регистр не важен, но.. Приведите все названия файлов к нижнему регистру, может, дело в этом..
Ну и, попробуйте сделать описанное здесь http://stackoverflow.com/questions/1...namespace-name
Yandex
Объявления
07.02.2014, 21:31     Не распознает класс
Ответ Создать тему
Опции темы

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