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

ооп. конструкторы. - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.89
olleg90
 Аватар для olleg90
34 / 34 / 6
Регистрация: 06.01.2011
Сообщений: 90
15.09.2011, 21:34     ооп. конструкторы. #1
Добрый вечер!
Не могу понять как из конструктора одного класса вызвать конструктор другого класса.
например есть класс точка со своим конструктором.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
class point 
{
private:
    float x,y;
    
public:
 
    point(): x(NULL),y(NULL) {}
    point (float x_, float y_):x(x_),y(y_){}
/*
......
*/
};
и есть класс линия (из двух точек) в котором нужно написать конструктор который в свою очередь будет вызывать конструктор класса точка (тот который с параметрами) .
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
class line 
{
private:
    point a,b;
 
public:
 
    //место для неведомого конструктора
 
 
/*
......
*/
            
};
как это все можно красиво реализовать не создавая лишних объектов и методов?

Заранее благодарен.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.09.2011, 21:34     ооп. конструкторы.
Посмотрите здесь:

Конструкторы C++
Конструкторы C++
C++ конструкторы
C++ конструкторы
Конструкторы C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Zverit
Уничтожитель печенек
 Аватар для Zverit
276 / 204 / 21
Регистрация: 07.02.2010
Сообщений: 723
15.09.2011, 22:01     ооп. конструкторы. #2
C++
1
line::line(float a, float  b): point(a,b)
olleg90
 Аватар для olleg90
34 / 34 / 6
Регистрация: 06.01.2011
Сообщений: 90
15.09.2011, 22:03  [ТС]     ооп. конструкторы. #3
спасибо!!! пошел пробовать...
что бы это работало надо сделать класс точка базовым?)
ValeryLaptev
Эксперт C++
1005 / 784 / 46
Регистрация: 30.04.2011
Сообщений: 1,595
15.09.2011, 22:09     ооп. конструкторы. #4
Цитата Сообщение от olleg90 Посмотреть сообщение
спасибо!!! пошел пробовать...
что бы это работало надо сделать класс точка базовым?)
Не обязательно. Нужно, чтобы класс был виден в месте определения объектов типа point и вызова конструкторов point.
Evg
Эксперт С++Автор FAQ
 Аватар для Evg
16825 / 5246 / 321
Регистрация: 30.03.2009
Сообщений: 14,127
Записей в блоге: 26
15.09.2011, 22:16     ооп. конструкторы. #5
Цитата Сообщение от ITZver Посмотреть сообщение
C++
1
line::line(float a, float  b): point(a,b)
Сие не есть правильно. Ты написал так, как если бы line был наследником point, что не есть на самом деле. Линия НЕ является точкой, а содержит точки. Правильным было бы

C++
1
line::line (float x1, float y1, float x2, float y2) : a (x1, y1), b (x2, y2) { }
Zverit
Уничтожитель печенек
 Аватар для Zverit
276 / 204 / 21
Регистрация: 07.02.2010
Сообщений: 723
15.09.2011, 22:16     ооп. конструкторы. #6
Цитата Сообщение от olleg90 Посмотреть сообщение
что бы это работало надо сделать класс точка базовым?)
Работать и так будет. Зависит уже от ваших целей, чего вы хотите добиться. Как понимаю, задание у вас на наследование,т.к уже такая тема не раз встречалась, то класс Point должен быть базовым. И класс line должен выглядеть так
C++
1
class line : public Point
olleg90
 Аватар для olleg90
34 / 34 / 6
Регистрация: 06.01.2011
Сообщений: 90
15.09.2011, 22:19  [ТС]     ооп. конструкторы. #7
Цитата Сообщение от ValeryLaptev Посмотреть сообщение
чтобы класс был виден в месте определения объектов типа point и вызова конструкторов point.
что то туплю. каким образом можно это сделать?)
Evg
Эксперт С++Автор FAQ
 Аватар для Evg
16825 / 5246 / 321
Регистрация: 30.03.2009
Сообщений: 14,127
Записей в блоге: 26
15.09.2011, 22:25     ооп. конструкторы. #8
Цитата Сообщение от ITZver Посмотреть сообщение
Работать и так будет. Зависит уже от ваших целей, чего вы хотите добиться. Как понимаю, задание у вас на наследование,т.к уже такая тема не раз встречалась, то класс Point должен быть базовым. И класс line должен выглядеть так
C++
1
class line : public Point
Да это бред полный. Нигде про наследование тут не написано, а line наследовать от point - это только безграмотный преподаватель может

Цитата Сообщение от olleg90 Посмотреть сообщение
что то туплю. каким образом можно это сделать?)
То, что написано в посте #5, втыкаешь на то место, где у тебя комментарий "место для неведомого конструктора"
olleg90
 Аватар для olleg90
34 / 34 / 6
Регистрация: 06.01.2011
Сообщений: 90
15.09.2011, 22:25  [ТС]     ооп. конструкторы. #9
Цитата Сообщение от ITZver Посмотреть сообщение
Как понимаю, задание у вас на наследование,т.к уже такая тема не раз встречалась
задание у меня освоить все прелести ООП в с++
Объект – треугольник.
Включает в себя три прямых.
Каждая прямая включает в себя две точки. (всего 3-и класса)
Действия – Определение свойств класса
Нахождение периметра
задачу нашел. про наследование тут ничего не сказано
Zverit
15.09.2011, 22:29
  #10
Evg
15.09.2011, 22:33
  #11

Не по теме:

Ещё один типичный пример того, что преподаватель сам ни черта не понимает в объектном программировании

olleg90
15.09.2011, 22:50  [ТС]
  #12

Не по теме:


Цитата Сообщение от Evg Посмотреть сообщение

Не по теме:



Ещё один типичный пример того, что преподаватель сам ни черта не понимает в объектном программировании

Евгений, а вот например "средство передвижения" -> "автомобиль" -> "легковой автомобиль" -> "ока"... будет хорошим примером наследования?

MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.09.2011, 22:55     ооп. конструкторы.
Еще ссылки по теме:

C++ Конструкторы
C++ Конструкторы С++
C++ Конструкторы ООП С++

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

Или воспользуйтесь поиском по форуму:
Evg
Эксперт С++Автор FAQ
 Аватар для Evg
16825 / 5246 / 321
Регистрация: 30.03.2009
Сообщений: 14,127
Записей в блоге: 26
15.09.2011, 22:55     ооп. конструкторы. #13
Цитата Сообщение от olleg90 Посмотреть сообщение
Евгений, а вот например "средство передвижения" -> "автомобиль" -> "легковой автомобиль" -> "ока"... будет хорошим примером наследования?
Именно так. Если это ты сам придумал, то можно тебя поздравить с тем, что хотя бы эту концепцию ты уже понимаешь
Yandex
Объявления
15.09.2011, 22:55     ооп. конструкторы.
Ответ Создать тему
Опции темы

Текущее время: 16:31. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru