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

Наследование: Создать класс человек, имеющий имя, возраст, вес - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.64
Sithis
10 / 1 / 0
Регистрация: 27.11.2011
Сообщений: 98
04.02.2013, 20:44     Наследование: Создать класс человек, имеющий имя, возраст, вес #1
Создать класс человек, имеющий имя (указатель на строку), возраст, вес. Определить конструкторы, деструктор и оператор присваивания. Создать производный класс - совершеннолетний, имеющий номер паспорта. Определить конструкторы по умолчанию и с разным числом параметров, деструкторы, операторы вывода в поток. Определить функции переназначения возраста и номера паспорта. Продемонстрировать работу классов.
Помогите пожалуйста с задачей. Вот примерный код, но там есть ошибки и не все реализовано:
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
#include <iostream.h>
class chelovek
{
    char i;
    int voz;
    int ves;
public:
    chelovek(char i1, int voz1, int ves1)
    {
        i=i1;
        voz=voz1;
        ves=ves1;
    }
    chelovek()
    {
        i=0;
        voz=0;
        ves=0;
    }
char Geti()
{return i;}
int getvoz()
{return voz;}
int getves()
{return ves;}
void seti(char i1)
{i=i1;}
void setvoz(char voz1)
{voz=voz1;}
void setves(char ves1)
{ves=ves1;}
};
class sovershennolitnij: public chelovek
{
public:
    sovershennolitnij (char i1; int voz1; int ves1): chelovek(i1; voz1; ves1){}
        void showi()
    {cout<<"imya:"<<geti()<<"\n";}
        void showvoz()
        {cout<<"vozrast:"<<getvoz()<<"\n";}
    void showves()
    {cout<<"ves:"<<getves()<<"\n";}
};
int main()
{
    sovershennolitnij *ptr;
    ptr=new sovershennolitnij(20;10;5);
    ptr->showi();
    ptr->showvoz();
    ptr->showves();
    cout<<"\n";
    delete ptr;
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.02.2013, 20:44     Наследование: Создать класс человек, имеющий имя, возраст, вес
Посмотрите здесь:

C++ Создать класс - человек, у которого есть имя и возраст.
создать класс сыр у которого есть название, вес порции, энергетическая ценность C++
C++ Наследование: Создать класс двигатель
Организовать ввод, хранение в массиве, вывод на экран данных о сту¬дентах: фамилия, имя, отчество, рост, вес. Вычислить средний вес студентов. Определ C++
C++ Создать класс жидкость, имеющий название (указатель на строку), плотность
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
abit
 Аватар для abit
260 / 259 / 33
Регистрация: 03.02.2013
Сообщений: 709
04.02.2013, 23:33     Наследование: Создать класс человек, имеющий имя, возраст, вес #2
на большее фантазии и времени не хватило... но вроде всё желаемое вами присутствует
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
#include <iostream>
using std::ostream;
class Human
{
    public:
        Human(char * _name = "", unsigned int _age = 0, unsigned int _weight = 0): age (_age), weight(_weight), name(_name) {};
        ~Human(){};
        Human& operator= (const Human& rhs)
            { name = rhs.name; age = rhs.age; weight=rhs.weight; };
        friend ostream& operator<< (ostream& out,const Human& rhs)
            {
                out << rhs.name <<" возраст - " << rhs.age << " вес - " << rhs.weight << " ";
                return out;
            } 
        const char * getName ()
            {return name;};
        const unsigned int getAge()
            {return age;}
        const unsigned int getWeight()
            {return weight;}
        void setName (char * _name)
            {name = _name;}
        void setAge (unsigned int _age)
            {age = _age;};
        void setWeight (unsigned int _weight)
            {weight = _weight;};    
    private:
        char * name; 
        unsigned int age;
        unsigned int weight;
};
 
class Mature : public Human
{
    public:
        Mature(char * _passNumber = ""): passNumber(_passNumber) {};
        ~Mature(){};
        friend ostream& operator<< (ostream & out, Mature& rhs)
            {
                out << rhs.getName() <<" возраст - " << rhs.getAge() << " вес - " << rhs.getWeight() << " ";
                out << "паспорт № " << rhs.passNumber;
                return out;
            } 
        const char * getPassNumber ()
            {return passNumber;};
        void setPassNumber (char * _passNumber)
            {passNumber = _passNumber;};
    private:
        char * passNumber;
};
 
using namespace std;
int main()
{
    
    Human Vasja("Вася",10,70);
    
    std::cout << Vasja << std::endl;
    
    Human Genja("Женя",10);
    
    std::cout << Genja << std::endl;
    
    Genja = Vasja; // Женя стал Васей
    std::cout << Genja.getName() <<" возраст - " << Genja.getAge() << " вес - " << Genja.getWeight() << std::endl;
    
    Mature Petja("6301 WY 1233 12412");
    
    Petja.setName("Петя");
    Petja.setAge(30);
    Petja.setWeight(100);
 
    std::cout << Petja << std::endl;
    
    Petja.setName("Пётр");
    Petja.setPassNumber("6305 ZN 124214 124124 12-222");
    
    std::cout << Petja << std::endl;
}
Sithis
10 / 1 / 0
Регистрация: 27.11.2011
Сообщений: 98
05.02.2013, 21:40  [ТС]     Наследование: Создать класс человек, имеющий имя, возраст, вес #3
Спасибо
Kuzia domovenok
 Аватар для Kuzia domovenok
1883 / 1738 / 116
Регистрация: 25.03.2012
Сообщений: 5,907
Записей в блоге: 1
05.02.2013, 22:08     Наследование: Создать класс человек, имеющий имя, возраст, вес #4
Цитата Сообщение от abit Посмотреть сообщение
на большее фантазии и времени не хватило... но вроде всё желаемое вами присутствует
а по-моему тут класс не содержит имя, а только указатель на него. Где выделение памяти+копирование строк???
abit
 Аватар для abit
260 / 259 / 33
Регистрация: 03.02.2013
Сообщений: 709
06.02.2013, 14:54     Наследование: Создать класс человек, имеющий имя, возраст, вес #5
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
а по-моему тут класс не содержит имя, а только указатель на него. Где выделение памяти+копирование строк???
да, верно,
C++
1
char * name;
поменяйте на
C++
1
string name
Yandex
Объявления
06.02.2013, 14:54     Наследование: Создать класс человек, имеющий имя, возраст, вес
Ответ Создать тему
Опции темы

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