Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Работа с классами, с++Builder6 
:(
    Опции темы
Fil75
Дата 7.7.2006, 21:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 23.5.2006

Репутация: нет
Всего: нет



Добрый день. Помогите пожалуйста дописать программу-пример. Вот что у меня получилось.
#include <iostream.h>
class Insekt //насекомое
{
protected:
int laenge; //длина
int gewicht; //вес

public:
Insekt(int,int); //конструктор
virtual void Essen(); //метод еда
virtual void Ausgabe(); //вывод на экран
};

class Libelle : public Insekt //производный класс стрекоза
{
protected:
Libelle(int);
int fluegellaenge; //длина крыла
void Essen();

};
Insekt::Insekt(int l,int g) //инициализируем конструктор
{laenge=l; //длина
 gewicht=g; // вес
}

void Insekt::Essen() // описываем метод еда
{ laenge++; // увеличиваем длину
  gewicht++; // увеличиваем вес
}

void Insekt::Ausgabe() // метод вывод на экран
{
cout << "Eta Strekosa  " << laenge <<" cm dlinoy" <<endl;
cout << "i " << gewicht << " g vesom"<<endl;
}

Libelle::Libelle(int fl) //конструктор произв.класса
{   fluegellaenge=fl; }

Libelle::Essen()       //увеличиваем длину крыла
{   fluegellaenge++;}

void main()
{

char p[50];
cin.getline(p,50);
}
Написать производный класс Strekosa. Этот класс должен содержать дополнительно свойство fluegellaenge (длина крыла). Метод Essen() этого производного класса должен увеличивать fluegellaenge (длина крыла). Изменить метод Ausgabe() класса Insekt чтобы дополнительно выводить длину крыла. Написать Main(). Которая бы выводила на экран следущее.
“Eta Strekosa 20 cm dlinoy and 1 gramm massoy. Ona imeet dlinu krila 20 cm.
“Eta Strekosa 25 cm dlinoy and 6 gramm massoy. Ona imeet dlinu krila 25 cm.

Помогите дописать Main().
 
PM MAIL   Вверх
EEEEEE
Дата 7.7.2006, 23:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 72
Регистрация: 15.5.2006

Репутация: нет
Всего: нет



Код

//---------------------------------------------------------------------------

#include <vcl.h>
#include <iostream.h>
#include <conio.h>

#pragma hdrstop

//---------------------------------------------------------------------------
//                   Описание класса Насекомое
//---------------------------------------------------------------------------
class Insekt //насекомое
{
 protected:
          int laenge; //длина
          int gewicht; //вес

 public:
        Insekt(int,int)       ; //конструктор
        virtual void Essen()  ; //метод еда

};
//---------------------------------------------------------------------------
//                   Реализация класса Насекомое
//---------------------------------------------------------------------------
Insekt::Insekt(int l,int g) //инициализируем конструктор
{
 laenge=l; //длина
 gewicht=g; // вес
}
//...........................................................................
void Insekt::Essen() // описываем метод еда
{
 laenge++; // увеличиваем длину
 gewicht++; // увеличиваем вес
}
//===========================================================================


//---------------------------------------------------------------------------
//        Описание класса Стрекоза производного от класса Насекомое
//---------------------------------------------------------------------------
class Libelle : public Insekt //производный класс стрекоза
{
public:
          void Ausgabe(); //вывод на экран
          Libelle(int LengthOfDragonfly, int Weight, int LengthCovered);

protected:
          void Essen();
          int fluegellaenge; //длина крыла
};
//---------------------------------------------------------------------------
//          Реализация класса Стрекоза производного от класса Насекомое
//---------------------------------------------------------------------------
Libelle::Libelle(int LengthOfDragonfly, int Weight, int LengthCovered) :
          Insekt (Weight, LengthCovered)   //конструктор произв.класса
{
 fluegellaenge = LengthOfDragonfly;
}
//...........................................................................
void Libelle::Essen()       //увеличиваем длину крыла
{   fluegellaenge++;}

//...........................................................................
void Libelle::Ausgabe() // метод вывод на экран
{
// “Eta Strekosa 20 cm dlinoy and 1 gramm massoy. Ona imeet dlinu krila 20 cm.

 cout << "Eta Strekosa  " << laenge << " cm dlinoy and "
      << gewicht << " gramm massoy. Ona imeet dlinu krila "
      << fluegellaenge << " cm." << endl;
}
//===========================================================================

#pragma argsused
int main(int argc, char* argv[])
{
  Libelle  Dragonfly_1(20,1,20);
  Libelle  Dragonfly_2(25,6,25);
  cout << "==================================================== " << endl;
  Dragonfly_1.Ausgabe();
  cout << ".................................................... " << endl;
  Dragonfly_2.Ausgabe();
  cout << "==================================================== " << endl;

getch();




        return 0;
}
//---------------------------------------------------------------------------
 
 
PM MAIL   Вверх
Fil75
Дата 9.7.2006, 00:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 23.5.2006

Репутация: нет
Всего: нет



Спасибо за помощь. Попутно еще один небольшой вопрос. В задачнике имеется 
часть кода:  
dog  big_dog(a);
 Small_dog small_dog(b,c);
 dog *Liste[2];
 Liste[0]=&small_dog;
 Liste[1]=&big_dog;
Liste[0]->to_bark(); //лаять
Liste[1]->to_bark(); //лаять

Класс small_dog это производный класс от класса dog. В классе small_dog метод to_bark() – перегружается. Как будет описано полное имя методов которые в последних двух строках вызываются, при условии что метод to_bark() описан не как виртуальный(virtual) Укажите имя в следущей форме Имя класса::Имя метода
Я сделал так dog::to_bark();
Правильно ли так?
 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) - крупнейший в рунете сборник материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C++ Builder | Следующая тема »


 




[ Время генерации скрипта: 0.0763 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.