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

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

Восстановить пароль Регистрация
 
Dusuney
1 / 1 / 0
Регистрация: 13.11.2012
Сообщений: 27
15.12.2012, 14:17     Передать параметр конустркутору производного класса #1
Нужно передать параметр конструктору производного класса "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);      //ругается на этот момент
    }
    };
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11844 / 6823 / 771
Регистрация: 27.09.2012
Сообщений: 16,915
Записей в блоге: 2
Завершенные тесты: 1
15.12.2012, 14:21     Передать параметр конустркутору производного класса #2
Цитата Сообщение от Dusuney Посмотреть сообщение
P3 *on = new P3(4,4); //ругается на этот момент
У Вас в классе P3 нет соответствующего конструктора
Nick Alte
Эксперт С++
1590 / 982 / 115
Регистрация: 27.09.2009
Сообщений: 1,897
Завершенные тесты: 1
15.12.2012, 14:23     Передать параметр конустркутору производного класса #3
Первое: конструктор по умолчанию класса P3 объявлен, но не определён.
Второе: у класса P3 даже и не объявлен конструктор, принимающий два числа.
Третье: у функции Milk не объявлен вовзращаемый тип.
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4926 / 2669 / 243
Регистрация: 29.11.2010
Сообщений: 7,425
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     Передать параметр конустркутору производного класса
Ответ Создать тему
Опции темы

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