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

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

Войти
Регистрация
Восстановить пароль
 
КенТюРиК
11 / 11 / 1
Регистрация: 18.10.2012
Сообщений: 148
#1

Использование классов - C++

10.03.2013, 00:50. Просмотров 725. Ответов 14
Метки нет (Все метки)

Составить программу для объявления и использования данных типа класс согласно индивидуальному заданию,
Базовый (транспортное средство)
Производный (самолет)
Производный(дельтоплан)

Суть проблемы:После того как первый раз ввожу поле Name,при вводе на производном классе запрос на его ввод больше не дает сразу просит ввести Nomer.

А также в задании было сказано: Проверить возможность доступа к членам класса в разделах private, public, protected. В разделах объявить минимум по одному данному-члену, включая статические (static).

Помогите,а то у меня при попытке поменять параметры доступа натыкаюсь на ошибки....

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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
#include "stdafx.h"
#include <stdio.h>
#include <iostream>
#include <string>
 
using namespace std;
 
char func(void);
char (*prt)(void)=func;
 
class Transport
{
public:
     char name[20];
     int nomer;
     int force;
     void vstup()
     {
         cout<<"Bazovii Klass"<<endl;
     }
     void information()
     {
 
    cout<<"Name"<<" "<<name<<" "<<"Nomer"<<" "<<nomer<<" "<<"Forse"" "<<force<<" "<<endl;
     }
};
 
class samolet:public Transport
{
public:
    int cena;
    void vstup()
     {
         cout<<"Pervii proizvodnii klass"<<endl;
     }
 
    void information2()
    {
        cout<<"Cena"<<cena<<endl;
        cout<<"Samolet"<<endl;
 
    }
};
 
class deltoplan:public samolet 
{
 
public:
    int skorost;
 
    void vstup()
     {
         cout<<"Vtoroii proizvodnii klass"<<endl;
     }
 
 
    void information3()
    {
        cout<<"Deltoplan"<<endl;
        cout<<"Skorost"<<skorost<<endl;
    }
 
};
 
int main()
{
 
    Transport *a=new Transport;
    samolet *b=new samolet;
    deltoplan *c=new deltoplan;
 
    a->vstup();
    cout<<"Vvedite Name"<<endl;
    gets_s(a->name);
    cout<<"Vvedite nomer"<<endl;
    cin>>(a->nomer);
    cout<<"Vvedite Force"<<endl;
    cin>>(a->force);
    a->information();
    
    cout<<(*prt)();
 
    b->vstup();
    cout<<"Vvedite Name"<<endl;
    gets_s(b->name);
    cout<<"Vvedite nomer"<<endl;
    cin>>(b->nomer);
    cout<<"Vvedite Force"<<endl;
    cin>>(b->force);
    cout<<"Vvedite Cena"<<endl;
    cin>>(b->cena);;
    b->information2();
    b->information();
 
    cout<<(*prt)();
 
    c->vstup();
    cout<<"Vvedite Skorost"<<endl;
    cin>>(c->skorost);
    c->information3();
    cout<<"Vvedite Name"<<endl;
    gets_s(c->name);
    cout<<"Vvedite nomer"<<endl;
    cin>>(c->nomer=30);
    cout<<"Vvedite Force"<<endl;
    cin>>(c->force=25);
    c->information();
 
    cout<<(*prt)();
        
    system("pause");
       return 0;
}
    
char func(void)
{
    cout<<"......................................."<<endl;
    return 0;
}
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.03.2013, 00:50
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Использование классов (C++):

Множественное наследование, Перегрузка функций, Перегрузка операторов, Использование дружественных функций и классов, Использование шаблонов классов - C++
Здравствуйте!!! Я бы хотел попросить помоч решить...ну или скинуть примеры таких задач, если вдруг у вас они завалялись на компе или...

Использование классов - C++
Разработать заголовочный файл, содержащий описание соответствующего класса, функции и операторы. Описание функций-членов класса разместить...

Использование классов - C++
Класс Члены класса Методы Операторы перегрузки Исходные данные Матрица Размерность ...

Использование классов - C++
Не хочет запускаться, помогите найти ошибку #include &lt;iostream&gt; #define N 5 using namespace std; class electronic_store { ...

Использование классов - C++
Здравствуйте господа программисты. Помогите мне пожалуста. В Курсовой есть такое задание: &quot;Создать телефонную книгу&quot; Программный проект...

Использование классов - C++
Расскажите пожалуйста на кокретных примерах как и где модно использовать классы?

14
Kins
59 / 58 / 6
Регистрация: 03.02.2013
Сообщений: 167
10.03.2013, 00:59 #2
Цитата Сообщение от КенТюРиК Посмотреть сообщение
private, protected
не объявлены. все поля и методы классов паблики.
1
КенТюРиК
11 / 11 / 1
Регистрация: 18.10.2012
Сообщений: 148
10.03.2013, 01:05  [ТС] #3
Буду благодарен если поможете исправить...
1
Kins
59 / 58 / 6
Регистрация: 03.02.2013
Сообщений: 167
10.03.2013, 01:14 #4
определение класса:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
class puk
{
private://можно protected://а можно не указывать, поумолчанию будет private
    int kol;//поле класса//свои поля используйте name, nomer, force
    float piu;//поле класса
public:
    void vstup()//метод класса
     {cout<<"Bazovii Klass"<<endl;}
     void information()//метод класса
     {cout<<"Name"<<" "<<name<<" "<<"Nomer"<<" "<<nomer<<" "<<"Forse"" "<<force<<" "<<endl;}
};
int main()
{
puk p1, p2, p3;//объявление трех объектов класса puk
}
Добавлено через 6 минут
объявление статической переменной:

C++
1
2
private://можно protected://а можно не указывать, поумолчанию будет private
    static int kol;//поле класса
1
КенТюРиК
11 / 11 / 1
Регистрация: 18.10.2012
Сообщений: 148
10.03.2013, 01:20  [ТС] #5
А можно показать это на моем коде,попытался изменить все в лучшую сторону,потерпел не удачу.
0
Kins
59 / 58 / 6
Регистрация: 03.02.2013
Сообщений: 167
10.03.2013, 02:25 #6
примерно так:

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
class transport
{
private:
    int mod;
    int col;
public:
    transport(int m, int c) : mod(m), col(c)
    {}
    void func()
    {cout <<"Модель самолета: " <<mod <<" Цвет крыла: " <<col <<endl;}
};
class samolet
{
protected:
    static const int kol=3;
public:
    samolet()
    {}
    void func()
    {cout <<"Цвет самолета: " <<kol <<endl;}
};
class deltoplan
{
    float speed;
    float pass;
public:
    deltoplan(float s, float p) : speed (s), pass (p)
    {}
    void func()
    {cout <<"Скорость самолета: " <<speed <<" Количество веса: " <<pass <<endl;}
};
int _tmain(int argc, _TCHAR* argv[])
{
    setlocale(LC_ALL, "");
    transport t(2, 6);
    samolet s;
    deltoplan d(1.75, 3.25);
    t.func();
    s.func();
    d.func();
    system("pause");
    return 0;
1
КенТюРиК
11 / 11 / 1
Регистрация: 18.10.2012
Сообщений: 148
10.03.2013, 02:39  [ТС] #7
Спасибо,но к сожалению у вас отсутствуют производные классы,все по отдельности и ничего не наследуется от базового класса,и и нет возможности самому вводить данные.
1
Kins
59 / 58 / 6
Регистрация: 03.02.2013
Сообщений: 167
10.03.2013, 02:51 #8
Цитата Сообщение от КенТюРиК Посмотреть сообщение
вас отсутствуют производные классы,все по отдельности и ничего не наследуется от базового класса,
это еще не разбирал просто,

Цитата Сообщение от КенТюРиК Посмотреть сообщение
и нет возможности самому вводить данные.
это легко

Добавлено через 7 минут
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
class deltoplan
{
    float speed;
    float pass;
public:
    deltoplan()
    {}
    void get()
    {
        cout <<"\nВведите скорость самолета float: "; cin >>speed;
        cout <<"Введите количество веса в самолете float: "; cin >>pass;
    }
    void func()
    {cout <<"Скорость самолета: " <<speed <<" Количество веса: " <<pass <<endl;}
Добавлено через 28 секунд
C++
1
2
3
4
5
6
7
transport t(2, 6);
    samolet s;
    deltoplan d;
    t.func();
    s.func();
    d.get();
    d.func();
2
КенТюРиК
11 / 11 / 1
Регистрация: 18.10.2012
Сообщений: 148
10.03.2013, 03:02  [ТС] #9
Спасибо,пока не пойму как сделать производные классы в вашем коде,но буду думать.

Добавлено через 1 минуту
P.s не подскажете почему в моем первоначальном коде,только 1 раз запрашивается ввод Name?
1
Kins
59 / 58 / 6
Регистрация: 03.02.2013
Сообщений: 167
10.03.2013, 03:15 #10
Цитата Сообщение от КенТюРиК Посмотреть сообщение
не подскажете
я просто сделал как я умею, много еще чего не знаю=)
1
КенТюРиК
11 / 11 / 1
Регистрация: 18.10.2012
Сообщений: 148
10.03.2013, 03:19  [ТС] #11
Ладненько,все равно спасибо,что не прошли мимо.

P.s вопрос остается открытым,как в первоначальном коде,проверить возможность доступа к членам класса в разделах private, public, protected. В разделах объявить минимум по одному данному-члену, включая статические (static).
И почему Name вызывается только один раз.
0
Kins
59 / 58 / 6
Регистрация: 03.02.2013
Сообщений: 167
10.03.2013, 03:23 #12
Цитата Сообщение от КенТюРиК Посмотреть сообщение
проверить возможность доступа к членам класса в разделах private, public, protected
это извне попробовать использовать переменные класса.


Цитата Сообщение от КенТюРиК Посмотреть сообщение
В разделах объявить минимум по одному данному-члену, включая статические (static).
это я сделал:

C++
1
2
3
4
class samolet
{
protected:
    static const int kol=3;
только я переменную сделал еще константой)
1
КенТюРиК
11 / 11 / 1
Регистрация: 18.10.2012
Сообщений: 148
10.03.2013, 03:28  [ТС] #13
А если не константой,то жалуется,что переменная должна быть постоянной,так что тут особо не разгуляешься.

Добавлено через 45 секунд
[QUOTE=Kins;4232282]это извне попробовать использовать переменные класса.


Не получилось,что-то не так делаю,что бы не изменил,сразу начинаются проблемы с доступом.
0
Kins
59 / 58 / 6
Регистрация: 03.02.2013
Сообщений: 167
10.03.2013, 03:46 #14
все- допенькал, забыл определить статическую переменную

Добавлено через 40 секунд
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
43
44
45
46
47
class transport
{
private:
    int mod;
    int col;
public:
    transport(int m, int c) : mod(m), col(c)
    {}
    void func()
    {cout <<"Модель самолета: " <<mod <<" Цвет крыла: " <<col <<endl;}
};
class samolet
{
protected:
    static  const int kol=3;
public:
    samolet()
    {}
    void func()
    {cout <<"Цвет самолета: " <<kol <<endl;}
};
class deltoplan
{
    static float speed;
    float pass;
public:
    void get()
    {
        cout <<"\nВведите скорость самолета float: "; cin >>speed;
        cout <<"Введите количество веса в самолете float: "; cin >>pass;
    }
    void func()
    {cout <<"Скорость самолета: " <<speed <<" Количество веса: " <<pass <<endl;}
};
float deltoplan::speed=0;//определение статич переменной
int _tmain(int argc, _TCHAR* argv[])
{
    setlocale(LC_ALL, "");
    transport t(2, 6);
    samolet s;
    deltoplan d;
    t.func();
    s.func();
    d.get();
    d.func();
    system("pause");
    return 0;
Добавлено через 1 минуту
а протектед- это как я думаю, использует константы, тоесть защищенные от изменения данные
1
КенТюРиК
11 / 11 / 1
Регистрация: 18.10.2012
Сообщений: 148
10.03.2013, 15:03  [ТС] #15
Теперь понятно)...Эх жаль не понятно,почему мой первоначальный код глючит(
0
10.03.2013, 15:03
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.03.2013, 15:03
Привет! Вот еще темы с ответами:

Создание и использование классов - C++
Здравствуйте програмисты. Помогите пожалуйста. В лабораторке есть задание: Организовать класс треугольник, определенный по длинам трех...

Использование функциональных классов - C++
Помогите решить задачу: Создать список из строк длиной не более 100 символов. Из всех подряд идущих строк с одинаковым количеством...

Использование классов Worda - C++
Необходимо подключить библиотеку Ворда и использовать ее классы и методы. Не знаю как описать класс. Спасибо

Задача на использование классов - C++
Добрый вечер форумчане! Мне задали написать программку, вот условие: Поля дaнных клаccа должны быть зaкрытыми, а доступ к ним должен...


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

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

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