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

Создать класс жидкость (доделать программу) - C++

Восстановить пароль Регистрация
 
Динар Габбасов
Заблокирован
29.03.2012, 21:16     Создать класс жидкость (доделать программу) #1
Создать класс "Жидкость" имеющий название (указатель на строку) плотность. определить конструкторы деструкторы и функцию печати,. создать публик производный класс - спиртные напитки, имеющий крепкость. Определить конструкторы по умолчанию и с разными числом параметров, деструкторы, функцию печати. определить функции переназначения плотности и крепости.
Буду очень признателен..
Долго возился читал много статей так толком ничего не понял, в форумах нашел кусок программы, помогите доделать чего не хватает. и main прописать.
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
#include "stdafx.h"
#include <string.h>
#include <stdio.h>
 
class liquid // создание класса жидкость
{
private: // закрытый тип данных
     char *name; // название указатель на строку
     float density;
public: // открытый тип
 
liquid(char *N_name, float n_d) // конструктор
{
    name = N_name; //
    density = n_d; //
}
~liquid() { delete name;} // деструктор 
        char* GetName() {return name;} // зачем она нужна?
}
class alcohol:public liquid // производный класс 
{
private:
     float strength;
public:
      alcohol(){}; // конструктор
      ~alcohol(){}; // дестркутор
}
void main()
{
 
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Merovingian
54 / 54 / 5
Регистрация: 24.09.2011
Сообщений: 149
29.03.2012, 23:06     Создать класс жидкость (доделать программу) #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
#include "stdafx.h"
#include <string.h>
#include <stdio.h>
#include <iostream>
 
using namespace std;
 
class liquid // создание класса жидкость
{
protected: // закрытый тип данных
     char *name; // название указатель на строку
     float density;
public: // открытый тип
    liquid();
    liquid(char *N_name, float n_d) // конструктор
    {
        name = new char[strlen(N_name)+1];
        strcpy (name, N_name);
        name[strlen(N_name)] = '\0';
        density = n_d; //
    }
    ~liquid() { delete [] name;} // деструктор 
    char* getName() const {return name;} // зачем она нужна?
    float getDensity() const {return density;}
    void setDensity(float dens){density = dens;}
    virtual void print(){cout<<name<<" "<<density<<endl;}
};
 
class alcohol : public liquid // производный класс 
{
private:
    float nabuhivaet;
public:
    alcohol(char *name, float density, float Nabuhivaet): liquid(name, density){ nabuhivaet = Nabuhivaet;}; // конструктор
    ~alcohol(){};// дестркутор
    float getNabuhivaet() const {return nabuhivaet;}
    void setNabuhivaet(float Nabuhivaet){nabuhivaet=Nabuhivaet;}
    void print(){cout<<name<<" "<<density<<" "<<nabuhivaet<<endl;}
};
 
 
int _tmain(int argc, _TCHAR* argv[])
{
    liquid VODA("BonAqua",1000);
    alcohol VODIARA("NASHA",800,40);
    VODA.setDensity(2000);
    VODA.print();
    VODIARA.print();
    system("pause");
    return 0;
}
diga
6 / 6 / 1
Регистрация: 30.03.2012
Сообщений: 111
30.03.2012, 06:36     Создать класс жидкость (доделать программу) #3
Цитата Сообщение от Merovingian Посмотреть сообщение
C++
1
2
3
4
5
6
7
liquid(char *N_name, float n_d) // конструктор
 {
 name = new char[strlen(N_name)+1];
 strcpy (name, N_name);
 name[strlen(N_name)] = '\0';
 density = n_d; //
 }
не могли бы вы описать что тут происходит? зачем это надо
Цитата Сообщение от Merovingian Посмотреть сообщение
C++
1
2
void setNabuhivaet(float Nabuhivaet){nabuhivaet=Nabuhivaet;}
 void print(){cout<<name<<" "<<density<<" "<<nabuhivaet<<endl;}
Цитата Сообщение от Merovingian Посмотреть сообщение
C++
1
2
3
4
5
liquid VODA("BonAqua",1000);
 alcohol VODIARA("NASHA",800,40);
 VODA.setDensity(2000);
 VODA.print();
 VODIARA.print();
буду благогдарен)
Merovingian
54 / 54 / 5
Регистрация: 24.09.2011
Сообщений: 149
30.03.2012, 15:03     Создать класс жидкость (доделать программу) #4
Цитата Сообщение от diga Посмотреть сообщение
не могли бы вы описать что тут происходит? зачем это надо буду благогдарен)
C++
1
2
3
4
5
6
7
8
9
10
11
12
liquid(char *N_name, float n_d) // конструктор - это метод(функция) класса, которая имеет такое же 
// имя как и сам класс. Создает объект данного класса.
 {
 name = new char[strlen(N_name)+1];
// выделяем память под строку, размером strlen(N_name)+1, 1 - нужна, чтобы добавить '\0' символ, который является концом строки
 strcpy (name, N_name);
// копируем в поле объекта(name) параметр конструктора(N_name). Грубо говоря копируем строку в строку
 name[strlen(N_name)] = '\0';
// в конец добавляем ноль символ
 density = n_d; //
// задаем плотность
 }
C++
1
2
3
4
void setNabuhivaet(float Nabuhivaet){nabuhivaet=Nabuhivaet;}
// Метод, так называемы сеттер. Устанавливает(изменяет) свойство объекта. В данном случае nabuhivaet
void print(){cout<<name<<" "<<density<<" "<<nabuhivaet<<endl;}
// А это метод вывода на экран
C++
1
2
3
4
5
6
7
8
liquid VODA("BonAqua",1000);
// создаем объект VODA класса(типа) liquid с name "BonAqua" и density 1000
 alcohol VODIARA("NASHA",800,40);
// аналогично только класс другой и объект другой))
 VODA.setDensity(2000);
// изменяем density объекта VODA на 2000
 VODA.print();// выводим на экран
 VODIARA.print();// --"--

Не по теме:

Я, наверное, не должен быть таким добрым...

Yandex
Объявления
30.03.2012, 15:03     Создать класс жидкость (доделать программу)
Ответ Создать тему
Опции темы

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