Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.04.2012, 18:42   #1
fly0f
 
Регистрация: 04.04.2012
Сообщений: 5
По умолчанию C++. Как в классе-потомке несколько раз вызвать один и тот же конструктор из базового класса?

Есть базовый класс Point(точка) и от него написан Treangle.
В Treangle передаю 3 координаты углов. x1,y1, x2,y2, x3,y3. И нужно все их передать классу Point. Но почему-то появляются.

В этом месте появляются две ошибки: "Point: already initialized". Я так понимаю что только один раз можно вызывать конструктор из базового класса? Может быть какое-нибудь решение есть?

Treangle::Treangle(float x1, float y1, float x2, float y2, float x3, float y3)
: Point(x1,y1), Point(x2, y2), Point(x3, y3)
{

}
fly0f вне форума Ответить с цитированием
Старый 16.04.2012, 19:02   #2
Galstuk1
Пользователь
 
Регистрация: 16.04.2012
Сообщений: 16
По умолчанию

в данном случае Point это данное-член класса Treangle. Переменная, другими словами. Естественно, нельзя иметь 3 объекта с одинаковыми именами.
Galstuk1 вне форума Ответить с цитированием
Старый 16.04.2012, 19:30   #3
fly0f
 
Регистрация: 04.04.2012
Сообщений: 5
По умолчанию

А как тогда можно вызвать 3 конструктора?
fly0f вне форума Ответить с цитированием
Старый 16.04.2012, 20:20   #4
Galstuk1
Пользователь
 
Регистрация: 16.04.2012
Сообщений: 16
По умолчанию

А зачем вызывать 3 конструктора без создания соответствующих трёх объектов? Пусть в классе Treangle будет 3 свойства типа Point, например point1, point 2, point3. Тогда перепишешь
Код:
Treangle::Treangle(float x1, float y1, float x2, float y2, float x3, float y3)
 : point1(x1,y1), point2(x2, y2), point3(x3, y3)
Вот тут в объекте типа Treangle создаются 3 объекта типа Point. Соответственно, конструктор Point вызывается 3 раза.
Galstuk1 вне форума Ответить с цитированием
Старый 16.04.2012, 20:36   #5
fly0f
 
Регистрация: 04.04.2012
Сообщений: 5
По умолчанию

Спасибо. Сейчас попробую. Может так получится?!
fly0f вне форума Ответить с цитированием
Старый 16.04.2012, 21:00   #6
Galstuk1
Пользователь
 
Регистрация: 16.04.2012
Сообщений: 16
По умолчанию

Должно получиться, почему нет. Я просто не понял, зачем вызывать конструктор просто так, без создания объектов.
Galstuk1 вне форума Ответить с цитированием
Старый 17.04.2012, 01:49   #7
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

Цитата:
зачем вызывать конструктор просто так, без создания объектов
Не совсем корректно... Обхекты создаются, только не сохраняются в переменных
p51x вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Инициализация переменных базового класса в дочернем классе t2skler Общие вопросы C/C++ 5 18.07.2022 20:53
Как скопировать один и тот же файл сразу в несколько папок? GvR Общие вопросы Delphi 7 08.11.2013 22:32
как вызвать одну и ту же процедуру несколько раз barbulina Общие вопросы Delphi 2 28.05.2011 19:16
Выполнить в Access несколько SQL команд за один раз Stilet Microsoft Office Access 3 25.01.2011 15:54
Сделать чтобы функция стандартная String.Delete работала в классе потомке от TStringList? nick17 Общие вопросы Delphi 4 09.11.2010 14:17