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

ООП - C++

Восстановить пароль Регистрация
 
Аня 13
 Аватар для Аня 13
2 / 2 / 0
Регистрация: 27.04.2010
Сообщений: 44
14.12.2010, 17:29     ООП #1
Создать класс Vegetable, содержащий следующие элементы:
- поле «вес» float Mass;
- поле «зрелость» int Ripeness;
- метод получения веса float GetMass();
- метод получения зрелости int GetRipeness() ;
- метод удобрить овощ void Fertilize(); (увеличивает массу на 0.1 кг)
- конструктор с параметрами Vegetable(float Mass, int Ripeness);
Унаследовать от класса Vegetable класс Tomato, содержащий элементы:
- поле «сорт» char* Type;
- поле «цвет» char* Color;
- поле «размер» char* Size;
- конструктор с параметрами Tomato(float Mass, int Ripeness, char* Type, char* Color, char* Size);
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.12.2010, 17:29     ООП
Посмотрите здесь:

ООП на С++ C++
ООП C++
C++ ООП C++
C++ ООП
ООП C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
oxotnik
 Аватар для oxotnik
1584 / 1061 / 33
Регистрация: 21.08.2008
Сообщений: 4,545
Записей в блоге: 1
14.12.2010, 17:37     ООП #2
и собственно в чем вопрос?
*информацию была принята к сведению*
almazsr
232 / 169 / 7
Регистрация: 13.11.2010
Сообщений: 425
14.12.2010, 20:38     ООП #3
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
class Vegetable
{
public:
    Vegetable(float Mass, int Ripeness)
    {
        this->Mass=Mass;
        this->Ripeness=Ripeness;
    }
    int GetRipeness()
    {
        return this->Ripeness;
    }
    float GetMass()
    {
        return this->Mass;
    }
    void Fertilize()
    {
        this->Mass+=0.1;
    }
private:
    float Mass;
    int Ripeness;
};
 
class Tomato: public Vegetable
{
public:
    Tomato(float Mass, int Ripeness, char* Type, char* Color, char* Size): Vegetable(Mass,Ripeness)
    {
        this->Type=Type;
        this->Color=Color;
        this->Size=Size;
    }
private:
    char* Size;
    char* Color;
    char* Type;
};
rangerx
1908 / 1517 / 139
Регистрация: 31.05.2009
Сообщений: 2,876
14.12.2010, 21:25     ООП #4
Цитата Сообщение от almazsr Посмотреть сообщение
C++
1
2
3
this->Type=Type;
this->Color=Color;
this->Size=Size;

...
almazsr
232 / 169 / 7
Регистрация: 13.11.2010
Сообщений: 425
14.12.2010, 21:31     ООП #5
Что не так?
rangerx
1908 / 1517 / 139
Регистрация: 31.05.2009
Сообщений: 2,876
14.12.2010, 21:35     ООП #6
Ты присваеваешь указателям адреса, а не копируешь строки.
almazsr
232 / 169 / 7
Регистрация: 13.11.2010
Сообщений: 425
14.12.2010, 21:39     ООП #7
У меня скопировалась вся строка. Что не так?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.12.2010, 22:14     ООП
Еще ссылки по теме:

ооп C++
C++ ООП
C++ ООП

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

Или воспользуйтесь поиском по форуму:
rangerx
1908 / 1517 / 139
Регистрация: 31.05.2009
Сообщений: 2,876
14.12.2010, 22:14     ООП #8
Цитата Сообщение от almazsr Посмотреть сообщение
У меня скопировалась вся строка.
У тебя скопировался только адрес, а не строка
Добавь в конструктор после
C++
1
this->Type=Type;
вот это
C++
1
this->Type[0] = 'A';
И в функции main напиши следующее
C++
1
2
3
char s[] = "type";
Tomato t(0,0,s,0,0);
puts(s);
Как видишь действия произведённые внутри класса отразились на s. Как это произошло, если строка была скопирована?
Yandex
Объявления
14.12.2010, 22:14     ООП
Ответ Создать тему
Опции темы

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