Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / C++ Новый топик    Ответить
 а можно ли прощемиться через указатель базового класса в свойства и методы дочернего ?  [new]
andron81
Member

Откуда: Смоленск
Сообщений: 1106
я имел ввиду вот это (сама проблема в конце исходника) :
class BASE {
public: int i;
protected:
    int x, y;
    void test() {}

};
class C : public BASE {
    int a;
public:
        C(int a): a(a) {}

        void print() { a = 111; }

};
int main()
{
    BASE * c = new C(555); 
    //ниже строчка работать не будет, а можно заставить ?
    //с->print(); 

}
8 апр 21, 22:10    [22306194]     Ответить | Цитировать Сообщить модератору
 Re: а можно ли прощемиться через указатель базового класса в свойства и методы дочернего ?  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 53394

static_cast

Posted via ActualForum NNTP Server 1.5

8 апр 21, 22:14    [22306195]     Ответить | Цитировать Сообщить модератору
 Re: а можно ли прощемиться через указатель базового класса в свойства и методы дочернего ?  [new]
petrav
Member

Откуда:
Сообщений: 2944
andron81,

В большинстве случаев такие желания говорят о том, что в архитектуре программы какой-то говнокосяк.
8 апр 21, 22:33    [22306201]     Ответить | Цитировать Сообщить модератору
 Re: а можно ли прощемиться через указатель базового класса в свойства и методы дочернего ?  [new]
andron81
Member

Откуда: Смоленск
Сообщений: 1106
Dimitry Sibiryakov

static_cast


спасибо. на самом деле виртуальные методы мне тут в помощь утупку ))

class BASE {
public: int i;
protected:
    int x, y;
    void test() {}
public:
    virtual void print() {};
};
class C : public BASE {
    int a;
public:
        C(int a): a(a) {}

       virtual void print() { 
           a = 111; 
       }
};

class A : public BASE {
    int a;
public:
    A(int a) : a(a) {}

    virtual void print() {
        a = 888;
    }
};


int main()
{
    BASE * c = new C(0); 
    c->print();

    BASE* a = new A(0);
    a->print();
}
8 апр 21, 22:34    [22306202]     Ответить | Цитировать Сообщить модератору
 Re: а можно ли прощемиться через указатель базового класса в свойства и методы дочернего ?  [new]
mayton
Member

Откуда: loopback
Сообщений: 51389
andron81, у тебя по истории постов сначала Java, потом С++.

Редкий кульбит.
8 апр 21, 22:52    [22306214]     Ответить | Цитировать Сообщить модератору
 Re: а можно ли прощемиться через указатель базового класса в свойства и методы дочернего ?  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 8256
andron81,

Прощемится это полиморфизм?))))))
9 апр 21, 07:07    [22306258]     Ответить | Цитировать Сообщить модератору
 Re: а можно ли прощемиться через указатель базового класса в свойства и методы дочернего ?  [new]
andron81
Member

Откуда: Смоленск
Сообщений: 1106
PetroNotC Sharp,

да ))
9 апр 21, 08:29    [22306272]     Ответить | Цитировать Сообщить модератору
Все форумы / C++ Ответить