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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
gurukamu
0 / 0 / 0
Регистрация: 13.09.2012
Сообщений: 46
#1

Виртуальные функции - C++

08.05.2013, 20:31. Просмотров 359. Ответов 3
Метки нет (Все метки)

Здравствуйте,уважаемые посетители форума.Пишу программу созданию фигур и их перемещению на экране использую виртуальные функции.И написал,все работает,но возник один вопрос я объявляю виртуальные функции:
C++
1
2
3
virtual void Show();//функция показывает фигуру
virtual void Hide();// скрывает фигуру
virtual void ChangePosition(int NewX1,int NewY1);//изменяет её координаты
и собственно функция,которая использует исходные:
C++
1
2
3
4
5
6
void MoveTo(int NewX1,int NewY1)
{
  Hide();
  ChangePosition(NewX1,NewY1);
  Show();
}
В одном из классов у меня функция ChangePosition() представляет собой:
C++
1
ChangePosition(int NewX1,int NewY1,int NewX2,int NewY2);
И все нормально работает.
Вопрос заключается в следующем:почему в реализации MoveTo(),стоит
C++
1
ChangePosition(int NewX1,int NewY1);
а работает также и
C++
1
ChangePosition(int NewX1,int NewY1,int NewX2,int NewY2);
Не пойму почему при разном числе параметров работает,хотя в реализации MoveTo() стоит два параметра,а также работает при четырех?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.05.2013, 20:31
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Виртуальные функции (C++):

виртуальные и чисто виртуальные функции - C++
Чем они отличаются?? если можно, с примерами. И как из виртуальной функции сделать чисто виртуальную? #include <iostream> using...

Виртуальные функции - C++
Если в базовом классе А есть виртуальная функция show() перегруженная, то есть имеется три разные версии этой функции. Есть класс Б...

Виртуальные функции - C++
Подскажите пожалуйста, как передать переменную из одной виртуальной функции в другую. Вот код программы работает правильно, но в остальных...

Виртуальные функции - C++
Составить программу в С Buildere. Объявить базовый класс с именем person {имя, возраст, группа}. Определить функцию show (), которая...

Виртуальные функции - C++
Вопрос. Как вызвать функцию наследника через указатель на базовый класс? Так не компилируется 3.cpp:19:19: error: invalid covariant...

виртуальные функции - C++
Всем привет, помогите с исправлением функции #include<iostream.h> #include<conio.h> #include<string.h> enum...

3
mat_for_c
143 / 138 / 29
Регистрация: 26.04.2013
Сообщений: 670
Завершенные тесты: 2
08.05.2013, 20:49 #2
Цитата Сообщение от gurukamu Посмотреть сообщение
virtual void ChangePosition(int NewX1,int NewY1);//изменяет её координаты
скорей всего из-за этого...
0
gurukamu
0 / 0 / 0
Регистрация: 13.09.2012
Сообщений: 46
08.05.2013, 20:56  [ТС] #3
чего этого?
0
Tulosba
:)
Эксперт С++
4396 / 3232 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
08.05.2013, 23:30 #4
gurukamu, либо у Вас как минимум 2 функции ChangePosition(). Одна с 2мя параметрами, а другая с 4мя. Либо, как минимум 2 параметра (в функции с 4мя параметрами) имеют значение по умолчанию. Короче говоря, без полного кода точно не сказать.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.05.2013, 23:30
Привет! Вот еще темы с ответами:

Виртуальные функции - C++
Создать абстрактный базовый класс с виртуальной функцией - объем. Создать производные классы: параллелепипед, пирамида, тетраэдр, шар со...

виртуальные функции - C++
интересует 2 вопроса:1)Какими элементами могут отличаться экземпляры одной виртуальной функции, находящиеся в разных производных...

виртуальные функции - C++
C++ подскажите пожалуста на словах код писать ненадо. как преопределить функцию virtual Print(). Создать абстрактный базовый класс...

Виртуальные функции - C++
Помогите пожалуйста написать задачу, никак не могу разобраться. Создайте класс Matr, определите в нем виртуальную функцию-член...


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

Или воспользуйтесь поиском по форуму:
4
Yandex
Объявления
08.05.2013, 23:30
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru