Компьютерный форум
Правила
Вернуться   Компьютерный форум > Форум программистов > Языки программирования > С/С++
Перезагрузить страницу абстрактные базовые классы
Ответ
 
Опции темы Опции просмотра
  (#1 (permalink)) Старый
Good1984))) Good1984))) вне форума
Новичок
 
Сообщений: 8
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 17.12.2011
По умолчанию абстрактные базовые классы - 25.12.2011, 19:34

#include <iostream.h>
class area
{
protected:
double x;
double y;
setar()
{
x=15;
y=20
}
public:
virtual void getar()
{ }
};
//*****************************************
class rectangle: public area
{
public:
void getar()
{
cout<<"VIS: "<<vis<<x<<endl;
}
};
//******************************************
class triangle: public area
{
public:
void getar()
{
cout<<"SHIR: "<<shir<<y;
}
};
//******************************************
void main()
{
rectangle VIS ;
triangle SHIR;
area* ptr;
//////////////////
ptr=&SHIR;
ptr->getar();
ptr=&VIS;
ptr->getar();
}
Ответить с цитированием
  (#2 (permalink)) Старый
Good1984))) Good1984))) вне форума
Новичок
 
Сообщений: 8
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 17.12.2011
По умолчанию 25.12.2011, 19:38

вот мои наработки... сделанное по условию задачи. остался один пункт условия. вот условие: необходимо переопределить функцию getar() в производных классах так, чтобы возвращать площадь фигуры, вид которой задается в производном классе.
Может поможет кто нибудь??? Заранее спасибо!!!
Ответить с цитированием
  (#3 (permalink)) Старый
Odin_KG Odin_KG вне форума
Member
 
Сообщений: 956
Сказал(а) спасибо: 0
Поблагодарили 17 раз(а) в 16 сообщениях
Регистрация: 28.01.2007
По умолчанию 26.12.2011, 03:43

Чтобы базовый класс стал абстрактным надо сделать в нем абстрактную функцию:
virtual void getar()=0; // вот так делается абстрактная функция

Тут не знаю, что вы делаете, но это не площадь вычисляется:
Цитата:
void getar()
{
cout<<"VIS: "<<vis<<x<<endl;
}
Сделайте так, чтобы результат возвращал площадь. Видимо в базовом классе у вас задаются только X,Y фигуры, что логично.
Тогда добавьте в class rectangle размеры прямоугольника, например так:
cpp Код:
protected:
    double width, height;
Ответить с цитированием
  (#4 (permalink)) Старый
Good1984))) Good1984))) вне форума
Новичок
 
Сообщений: 8
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 17.12.2011
По умолчанию 26.12.2011, 14:33

class area
{
protected:
double height, width;
setar()
{
height=15;
width=20;
}
__________________________________________________ ________

[C++ Warning] 4.cpp(11): W8070 Function should return a value
выдает ошибку такую на последнюю строчку (на фигурную скобку)
Ответить с цитированием
  (#5 (permalink)) Старый
Сыроежка Сыроежка вне форума
Member
 
Сообщений: 137
Сказал(а) спасибо: 0
Поблагодарили 17 раз(а) в 17 сообщениях
Регистрация: 16.11.2011
По умолчанию 26.12.2011, 15:23

Цитата:
Сообщение от Good1984))) Посмотреть сообщение
class area
{
protected:
double height, width;
setar()
{
height=15;
width=20;
}
__________________________________________________ ________

[C++ Warning] 4.cpp(11): W8070 Function should return a value
выдает ошибку такую на последнюю строчку (на фигурную скобку)
Вы для функции setar не указали тип возврращаемого значения. В этом случае компилятор предполагает, что функция имеет тип возврщаемого значения int, то есть что функция имеет объявление int setar();. Но в таком случае в теле функции должно присутствовать предложение с ключевым словом return, за которым следует выражение, которое может быть преобразовано к типу int. Если же вы не хотите из функции возвращать никакого значения, то есть нет никакого смысла из функции возвращать какое-то значение, то следуют ее объявить как void setar();

Замечу также, что приведенное вами сообщение компилятора не является сообщением об ошибке, а является предупреждением.
Ответить с цитированием
Ads.
  (#6 (permalink)) Старый
Good1984))) Good1984))) вне форума
Новичок
 
Сообщений: 8
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 17.12.2011
По умолчанию 26.12.2011, 15:45

Вот моя прога, но как сделать чтобы она считала площадь фигуры, ошибок нету, но она почему то не то выводит на экран.

#include <iostream.h>
using namespace std;
class area
{
protected:
double height, width;
void setar()
{
height=4.5;
width=5.6;
}
public:
virtual void getar()=0;
};
//*****************************************
class rectangle: public area
{
public:
void getar()
{
cout<<"HEIGHT:"<<height;
cin>>height;
}
};
//******************************************
class triangle: public area
{
public:
void getar()
{
cout<<"WIDTH: "<<width;
cin>>width;
}
};
//******************************************
int main()
{
rectangle height ;
triangle width;
area* ptr;
//////////////////
ptr=&height;
ptr->getar();
ptr=&width;
ptr->getar();
return 0;
}
Ответить с цитированием
Ads
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как создавать классы в С++ Buiilder caxaromires C++ Builder 4 13.04.2011 13:31
Базовые типы данных в Builder C++ koreta C++ Builder 1 08.01.2011 14:50
Классы модификация магнитофона elenSV С/С++ 2 01.05.2009 17:11
Классы как найти ошибку Виталик 1 Delphi 2 29.01.2009 16:49
базовые алгоритмы на С++ Liliput Задания за деньги 3 06.05.2007 20:14
Производные классы окружности wert С/С++ 1 02.03.2007 23:44
Сервер клиент и классы Gansss C++ Builder 3 02.01.2007 06:31
Классы как с ними работать Klose Delphi 7 31.05.2006 17:45
Классы на Asm как их создавать no_NaMe Assembler 4 13.04.2006 18:18
Базовые процедуры вывода графических примитивов на экран DeepFinder Pascal 1 09.11.2004 03:11
DLL и классы St@lker Visual C++ 4 16.02.2004 15:21



Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Нardforum.ru - компьютерный форум и программирование, форум программистов