Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Виртуальные функции 
:(
    Опции темы
Miha90
Дата 17.11.2008, 13:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Добрый день. 

Помогите пожалуйста вывести на экран объект с помошью виртуальных функций?

Вывел таким образом, но наша Ирина Владимировна просит вывести результаты через указатель на базовый класс.
Код

//--------------------------------------------------------------------------- 
void __fastcall TForm1::FormPaint(TObject *Sender) 
{       
CPoint P(20,30); 
CLine L(70, 30, 50, 10); 
CSqare S(110, 10, 90, 30); 
CSphere Sp(140, 30, 120, 30); 

P.Print(Canvas); 
L.Print(Canvas); 
S.Print(Canvas); 
Sp.Print(Canvas); 
} 


Вот мое решение, но, видимо, что-то не так:
Код


//--------------------------------------------------------------------------- 
void __fastcall TForm1::FormPaint(TObject *Sender) 
{      
CPoint P(20,30); 
CLine L(70, 30, 50, 10); 
CSqare S(110, 10, 90, 30); 
CSphere Sp(140, 30, 120, 30);
 
CPoint *P=new CPoint;
CLine *L;
CSqare *S;
CSphere *Sp;
P->Print();
L=(CPoint *)P;
L->Print();
S=(CLine *)L;
S->Print();
Sp=(CLine *)L;
Sp->Print();
}


P.S. CLine - наследник CPoint,  а CSqare и CSphere - наследники CLine.



Это сообщение отредактировал(а) Miha90 - 17.11.2008, 13:24
PM MAIL   Вверх
mrbrooks
Дата 17.11.2008, 13:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


трололомен
****


Профиль
Группа: Завсегдатай
Сообщений: 4259
Регистрация: 4.10.2006
Где: Дол Гулдур

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



Код

CPoint *P;
CLine L;
P=&L;
P->Print();

PM MAIL   Вверх
Miha90
Дата 17.11.2008, 14:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Я так пробовал, Builder ругается.   
Цитата

  [BCC32 Error] Unit1.cpp(106): E2238 Multiple declaration for 'P'
  [BCC32 Error] Unit1.cpp(102): E2344 Earlier declaration of 'P'
  [BCC32 Error] Unit1.cpp(107): E2238 Multiple declaration for 'L'
  [BCC32 Error] Unit1.cpp(103): E2344 Earlier declaration of 'L'


PM MAIL   Вверх
mrbrooks
Дата 17.11.2008, 14:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


трололомен
****


Профиль
Группа: Завсегдатай
Сообщений: 4259
Регистрация: 4.10.2006
Где: Дол Гулдур

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



Miha90, разумеется. небось не подумавши влепил то что я написал - под своим добром. и объявления в том числе мои под своими.

Добавлено через 47 секунд
Код

CPoint *P;
CLine L(70, 30, 50, 10);
P=&L;
P->Print();


достаточно этого
PM MAIL   Вверх
DareDevil225
Дата 17.11.2008, 15:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Miha90, так назови по другому указатель...  mrbrooks, вам общий принцип написал
Код

void __fastcall TForm1::FormPaint(TObject *Sender) 
{      
CPoint P(20,30); 
CLine L(70, 30, 50, 10); 
CSqare S(110, 10, 90, 30); 
CSphere Sp(140, 30, 120, 30);
 
CPoint *pCP;

pCP=&P
pCP->Print();

pCP=&L;
pCP->Print();

pCP=&S;
pCP->Print();

pCP=&Sp;
pCP->Print();
}


Это сообщение отредактировал(а) DareDevil225 - 17.11.2008, 15:01
PM MAIL   Вверх
Miha90
Дата 17.11.2008, 15:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Огромное спасибо всем. 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

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

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


 




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


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

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