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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.89
olleg90
34 / 34 / 6
Регистрация: 06.01.2011
Сообщений: 90
#1

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

15.09.2011, 21:34. Просмотров 1064. Ответов 12
Метки нет (Все метки)

Добрый вечер!
Не могу понять как из конструктора одного класса вызвать конструктор другого класса.
например есть класс точка со своим конструктором.
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:
 
    //место для неведомого конструктора
 
 
/*
......
*/
            
};
как это все можно красиво реализовать не создавая лишних объектов и методов?

Заранее благодарен.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.09.2011, 21:34
Здравствуйте! Я подобрал для вас темы с ответами на вопрос ооп. конструкторы. (C++):

Конструкторы ООП С++ - C++
Здравствуйте, написал программу на объектах со следующим условием: Исходные данные: текст книги. Функции: 1)Определение ...

конструкторы - C++
Доброе время суток! Помогите разобраться с конструктором. Что это такое и с чем его едят. Так как сдала лабу преподавателю, ну вроде ж...

Конструкторы C++ - C++
Объясните, пожалуйста, своими словами, что являют собой конструкторы, для чего они нужны, в чем их преимущество перед аналогичными...

Конструкторы - C++
Спроектируйте класс – “калькулятор”, предназначенный для выполнения арифметических операций с двумя операндами и добавьте в разработанный...

Конструкторы С++ - C++
Всем привет, помогите довести программу до ума :) Заранее благодарю откликнувшихся :) ...

Конструкторы - C++
Объясните на пальцах, для чего нужны конструкторы?

12
Zverit
Уничтожитель печенек
277 / 205 / 21
Регистрация: 07.02.2010
Сообщений: 723
15.09.2011, 22:01 #2
C++
1
line::line(float a, float  b): point(a,b)
1
olleg90
34 / 34 / 6
Регистрация: 06.01.2011
Сообщений: 90
15.09.2011, 22:03  [ТС] #3
спасибо!!! пошел пробовать...
что бы это работало надо сделать класс точка базовым?)
0
ValeryLaptev
Эксперт С++
1041 / 820 / 48
Регистрация: 30.04.2011
Сообщений: 1,659
15.09.2011, 22:09 #4
Цитата Сообщение от olleg90 Посмотреть сообщение
спасибо!!! пошел пробовать...
что бы это работало надо сделать класс точка базовым?)
Не обязательно. Нужно, чтобы класс был виден в месте определения объектов типа point и вызова конструкторов point.
1
Evg
Эксперт CАвтор FAQ
17950 / 6181 / 413
Регистрация: 30.03.2009
Сообщений: 16,972
Записей в блоге: 27
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) { }
0
Zverit
Уничтожитель печенек
277 / 205 / 21
Регистрация: 07.02.2010
Сообщений: 723
15.09.2011, 22:16 #6
Цитата Сообщение от olleg90 Посмотреть сообщение
что бы это работало надо сделать класс точка базовым?)
Работать и так будет. Зависит уже от ваших целей, чего вы хотите добиться. Как понимаю, задание у вас на наследование,т.к уже такая тема не раз встречалась, то класс Point должен быть базовым. И класс line должен выглядеть так
C++
1
class line : public Point
0
olleg90
34 / 34 / 6
Регистрация: 06.01.2011
Сообщений: 90
15.09.2011, 22:19  [ТС] #7
Цитата Сообщение от ValeryLaptev Посмотреть сообщение
чтобы класс был виден в месте определения объектов типа point и вызова конструкторов point.
что то туплю. каким образом можно это сделать?)
0
Evg
Эксперт CАвтор FAQ
17950 / 6181 / 413
Регистрация: 30.03.2009
Сообщений: 16,972
Записей в блоге: 27
15.09.2011, 22:25 #8
Цитата Сообщение от ITZver Посмотреть сообщение
Работать и так будет. Зависит уже от ваших целей, чего вы хотите добиться. Как понимаю, задание у вас на наследование,т.к уже такая тема не раз встречалась, то класс Point должен быть базовым. И класс line должен выглядеть так
C++
1
class line : public Point
Да это бред полный. Нигде про наследование тут не написано, а line наследовать от point - это только безграмотный преподаватель может

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

Не по теме:

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

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

Не по теме:


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

Не по теме:



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

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

0
Evg
Эксперт CАвтор FAQ
17950 / 6181 / 413
Регистрация: 30.03.2009
Сообщений: 16,972
Записей в блоге: 27
15.09.2011, 22:55 #13
Цитата Сообщение от olleg90 Посмотреть сообщение
Евгений, а вот например "средство передвижения" -> "автомобиль" -> "легковой автомобиль" -> "ока"... будет хорошим примером наследования?
Именно так. Если это ты сам придумал, то можно тебя поздравить с тем, что хотя бы эту концепцию ты уже понимаешь
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.09.2011, 22:55
Привет! Вот еще темы с ответами:

Конструкторы - C++
Пытаюсь разработайте класс представления окна на экране компьютера. В состав должны войти следующие конструкторы: -конструктор по...

Конструкторы - C++
Есть фрагмент кода: #include <iostream> using namespace std; class Counter { public: Counter operator++(int);...

Конструкторы - C++
class A { public: A() : a(10) // инициализация a { b = 3; // присвоение b } int a, b; };

Конструкторы - C++
У меня есть два конструктора: первый по умолчанию Circle() //Конструктор по умолчанию (инициализирует переменные) { itsRadius =...


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

Или воспользуйтесь поиском по форуму:
13
Yandex
Объявления
15.09.2011, 22:55
Ответ Создать тему
Опции темы

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