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

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

Восстановить пароль Регистрация
 
КенТюРиК
11 / 11 / 1
Регистрация: 18.10.2012
Сообщений: 148
10.03.2013, 00:50     Использование классов #1
Составить программу для объявления и использования данных типа класс согласно индивидуальному заданию,
Базовый (транспортное средство)
Производный (самолет)
Производный(дельтоплан)

Суть проблемы:После того как первый раз ввожу поле 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;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.03.2013, 00:50     Использование классов
Посмотрите здесь:

Совместное использование классов C++
C++ Использование классов
Создание и использование классов C++
Использование классов C++
Использование функциональных классов C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Kins
 Аватар для Kins
59 / 58 / 6
Регистрация: 03.02.2013
Сообщений: 167
10.03.2013, 00:59     Использование классов #2
Цитата Сообщение от КенТюРиК Посмотреть сообщение
private, protected
не объявлены. все поля и методы классов паблики.
КенТюРиК
11 / 11 / 1
Регистрация: 18.10.2012
Сообщений: 148
10.03.2013, 01:05  [ТС]     Использование классов #3
Буду благодарен если поможете исправить...
Kins
 Аватар для 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;//поле класса
КенТюРиК
11 / 11 / 1
Регистрация: 18.10.2012
Сообщений: 148
10.03.2013, 01:20  [ТС]     Использование классов #5
А можно показать это на моем коде,попытался изменить все в лучшую сторону,потерпел не удачу.
Kins
 Аватар для 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;
КенТюРиК
11 / 11 / 1
Регистрация: 18.10.2012
Сообщений: 148
10.03.2013, 02:39  [ТС]     Использование классов #7
Спасибо,но к сожалению у вас отсутствуют производные классы,все по отдельности и ничего не наследуется от базового класса,и и нет возможности самому вводить данные.
Kins
 Аватар для 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();
КенТюРиК
11 / 11 / 1
Регистрация: 18.10.2012
Сообщений: 148
10.03.2013, 03:02  [ТС]     Использование классов #9
Спасибо,пока не пойму как сделать производные классы в вашем коде,но буду думать.

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

P.s вопрос остается открытым,как в первоначальном коде,проверить возможность доступа к членам класса в разделах private, public, protected. В разделах объявить минимум по одному данному-члену, включая статические (static).
И почему Name вызывается только один раз.
Kins
 Аватар для 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;
только я переменную сделал еще константой)
КенТюРиК
11 / 11 / 1
Регистрация: 18.10.2012
Сообщений: 148
10.03.2013, 03:28  [ТС]     Использование классов #13
А если не константой,то жалуется,что переменная должна быть постоянной,так что тут особо не разгуляешься.

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


Не получилось,что-то не так делаю,что бы не изменил,сразу начинаются проблемы с доступом.
Kins
 Аватар для 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 минуту
а протектед- это как я думаю, использует константы, тоесть защищенные от изменения данные
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.03.2013, 15:03     Использование классов
Еще ссылки по теме:

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

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

Или воспользуйтесь поиском по форуму:
КенТюРиК
11 / 11 / 1
Регистрация: 18.10.2012
Сообщений: 148
10.03.2013, 15:03  [ТС]     Использование классов #15
Теперь понятно)...Эх жаль не понятно,почему мой первоначальный код глючит(
Yandex
Объявления
10.03.2013, 15:03     Использование классов
Ответ Создать тему
Опции темы

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