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

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

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

Передать параметр конустркутору производного класса - C++

15.12.2012, 14:17. Просмотров 282. Ответов 5
Метки нет (Все метки)

Нужно передать параметр конструктору производного класса "P3".
Вылетает ошибка при создании экземляра "P3" в классе "D". Я уверен, что ошибка происходит, при инициализации конструктора у наследника "P3". Собственно вопрос: как правильно описать конструктор у наследника "P3".
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
class P2
    {
        private: int X;
        private: int Y;
        public: P2(int xcord, int ycord)
        {
            X = xcord;
            Y = ycord;
        }
     };
 
class P3:public P2
    {
public:
    P3();                                // сам конструктор
    };
 
    class D{
    Milk(){
    P3 *on = new P3(4,4);      //ругается на этот момент
    }
    };
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.12.2012, 14:17     Передать параметр конустркутору производного класса
Посмотрите здесь:

Инициализация конструкторов производного класса C++
C++ Использование перегруженного оператора ввода/вывода в поток базового класса для объекта производного класса
C++ Вызов метода производного класса через обращение к методу базового класса
Передать метод класса как параметр C++
Конструкторы базового и производного класса C++
C++ Предобъявление производного класса
Указатель на объект базового класса и адрес объекта производного класса C++
C++ Создание указателя типа базового класса на экземпляр производного класса
Конструктор производного класса C++
Определить обработчик исключений на преобразование указателя базового класса на указатель производного класса C++
C++ Тип производного класса
Вызов объектом базового класса функцию из производного класса! C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Croessmah
Модератор
Эксперт CЭксперт С++
12882 / 7268 / 810
Регистрация: 27.09.2012
Сообщений: 17,958
Записей в блоге: 2
Завершенные тесты: 1
15.12.2012, 14:21     Передать параметр конустркутору производного класса #2
Цитата Сообщение от Dusuney Посмотреть сообщение
P3 *on = new P3(4,4); //ругается на этот момент
У Вас в классе P3 нет соответствующего конструктора
Nick Alte
Эксперт С++
1605 / 997 / 118
Регистрация: 27.09.2009
Сообщений: 1,923
Завершенные тесты: 1
15.12.2012, 14:23     Передать параметр конустркутору производного класса #3
Первое: конструктор по умолчанию класса P3 объявлен, но не определён.
Второе: у класса P3 даже и не объявлен конструктор, принимающий два числа.
Третье: у функции Milk не объявлен вовзращаемый тип.
MrGluck
Ворчун
Эксперт CЭксперт С++
6658 / 3849 / 509
Регистрация: 29.11.2010
Сообщений: 10,190
15.12.2012, 14:27     Передать параметр конустркутору производного класса #4
new используется лишь для того, чтоб конструктор производного класса вызывать? То же самое можно делать и с помощью списков инициализации:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
class P2
{
    private:
        int X;
        int Y;
    public: P2(int xcord, int ycord)
    {
        X = xcord;
        Y = ycord;
    }
};
 
class P3:public P2
{
    public:
        P3(int x, int y) : P2(x, y) {}
};
 
class D : public P3
{
    public:
        D() : P3(4, 4) {}
};
Nick Alte
15.12.2012, 14:31
  #5

Не по теме:

Телепаты наконец-то вернулись из отпуска

Dusuney
1 / 1 / 0
Регистрация: 13.11.2012
Сообщений: 27
15.12.2012, 15:43  [ТС]     Передать параметр конустркутору производного класса #6
Цитата Сообщение от MrGluck Посмотреть сообщение
new используется лишь для того, чтоб конструктор производного класса вызывать? То же самое можно делать и с помощью списков инициализации:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
class P2
{
    private:
        int X;
        int Y;
    public: P2(int xcord, int ycord)
    {
        X = xcord;
        Y = ycord;
    }
};
 
class P3:public P2
{
    public:
        P3(int x, int y) : P2(x, y) {}
};
 
class D : public P3
{
    public:
        D() : P3(4, 4) {}
};
Благодарю товаристщ!
Yandex
Объявления
15.12.2012, 15:43     Передать параметр конустркутору производного класса
Ответ Создать тему
Опции темы

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