Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
r00712
0 / 0 / 0
Регистрация: 07.09.2013
Сообщений: 131
#1

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

07.02.2014, 20:17. Просмотров 809. Ответов 30
Метки нет (Все метки)

Вообщем код файлы 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 минуты
Помогите пожалуйста!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.02.2014, 20:17
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Не распознает класс (C++):

Есть класс A и класс B, класс B вложен в класс A и вложен в него, как классу B получить доступ к переменным класса A просто по имени? - C++
На самом деле ничё фантастического я не прошу, ведь: template &lt;class T&gt; class matrix { friend class diagonal; ...

G++ не распознает nullptr - C++
Компилятор gcc4.5 флаг -std=gnu++0x но не распознает nullptr почему то Build Prog_name -fmessage-length=0 -std=gnu++0x -fPIC...

Не распознает String - C++
Не распознает String. Как исправить? #include &quot;stdafx.h&quot; #include &lt;cstdio&gt; #include &lt;cstdlib&gt; #include &lt;iostream&gt; #include...

Не распознает русские буквы. - C++
// vc.cpp: определяет точку входа для консольного приложения. // #include &quot;stdafx.h&quot; // Дописывает в файл фамилию, имя и номер...

Почему не распознает _TCHAR? - C++
Добрый вечер. Подскажите, почему не работает строка int _tmain(int argc, _TCHAR* argv) В чем проблема с _TCHAR? Собсно вот код: ...

Программа не распознает русские буквы - C++
Я написала программный код, но у меня не распознаются русские буквы, и следовательно не выполняется поиск элементов. Как можно исправить...

30
jurok_85
261 / 245 / 87
Регистрация: 21.02.2013
Сообщений: 583
Завершенные тесты: 1
07.02.2014, 20:18 #2
к проекту оба файла подключены ? каким компилятором пользуетесь?
0
r00712
0 / 0 / 0
Регистрация: 07.09.2013
Сообщений: 131
07.02.2014, 20:22  [ТС] #3
Компилятор - Visual Studio
0
KOPOJI
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
16713 / 6635 / 434
Регистрация: 12.06.2012
Сообщений: 19,880
Завершенные тесты: 1
07.02.2014, 20:27 #4
Цитата Сообщение от r00712 Посмотреть сообщение
C++
1
Prepod::name = prepod_name;
C++
1
name = prepod_name;
Аналогично в других местах.
0
jurok_85
261 / 245 / 87
Регистрация: 21.02.2013
Сообщений: 583
Завершенные тесты: 1
07.02.2014, 20:28 #5
файлы создавал таким путем: Проект -> Добавить новый элемент...
?

Добавлено через 1 минуту
а ну KOPOJI уже разобрался
0
r00712
0 / 0 / 0
Регистрация: 07.09.2013
Сообщений: 131
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 все еще не является именем класса
0
KOPOJI
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
16713 / 6635 / 434
Регистрация: 12.06.2012
Сообщений: 19,880
Завершенные тесты: 1
07.02.2014, 20:37 #7

Не по теме:

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


А сам код main показать не хотите? И да, необъявленные или неинициализированные?
0
r00712
0 / 0 / 0
Регистрация: 07.09.2013
Сообщений: 131
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 минуты
Идентификаторы именно необъявленные.
0
jurok_85
261 / 245 / 87
Регистрация: 21.02.2013
Сообщений: 583
Завершенные тесты: 1
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
0
KOPOJI
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
16713 / 6635 / 434
Регистрация: 12.06.2012
Сообщений: 19,880
Завершенные тесты: 1
07.02.2014, 20:44 #10
Это не весь код. Оставшаяся часть под секретом?
0
r00712
0 / 0 / 0
Регистрация: 07.09.2013
Сообщений: 131
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;
}
0
KOPOJI
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
16713 / 6635 / 434
Регистрация: 12.06.2012
Сообщений: 19,880
Завершенные тесты: 1
07.02.2014, 20:46 #12

Не по теме:

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



Добавлено через 36 секунд
Цитата Сообщение от r00712 Посмотреть сообщение
// Сохранение имени и фамилии в объект класса Students
Я правильно понял - что это просто коммент, и в коде ничего такого нет?
0
r00712
0 / 0 / 0
Регистрация: 07.09.2013
Сообщений: 131
07.02.2014, 20:49  [ТС] #13
Да, просто коммент. Весь код я выложил.
0
KOPOJI
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
16713 / 6635 / 434
Регистрация: 12.06.2012
Сообщений: 19,880
Завершенные тесты: 1
07.02.2014, 20:53 #14
r00712, тогда данной ошибки не может возникнуть - вы объект (Pr1) не трогаете, только создаете и все. Конструктор вы не переопределяли, следовательно, он пустой. Все, дальше вы о нем забываете
0
r00712
0 / 0 / 0
Регистрация: 07.09.2013
Сообщений: 131
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
0
07.02.2014, 21:08
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.02.2014, 21:08
Привет! Вот еще темы с ответами:

Не распознает синтаксис диапазона case - C++
#include&lt;iostream&gt; #include&lt;conio.h&gt; #include&lt;math.h&gt; void main(void) { using namespace std; setlocale(LC_ALL, &quot;Russian&quot;);...

Компилятор не распознает объявление класса - C++
Суть, есть класс map , основное поле это struct MapTile{ Object_map * Obj; char Fon; }; Object_map - это а.б.к....

простейшею программу распознает как вирус - C++
Написав казалось бы самую простую и обычную програму антивирусы ругаются на WIN 32 троян. Проверка на вирусы (также ругается аваст,...

Не распознает функцию tg (тангенс) с библиотекой math.h - C++
не могу обозначить переменную тангенса,с библиотекой даже не распознает. условия(фото): Вычислить для своего варианта Y, задав значения...


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru