Гость
Форумы / C++ [игнор отключен] [закрыт для гостей] / а можно ли прощемиться через указатель базового класса в свойства и методы дочернего ? / 7 сообщений из 7, страница 1 из 1
08.04.2021, 22:10
    #40060838
andron81
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
а можно ли прощемиться через указатель базового класса в свойства и методы дочернего ?
я имел ввиду вот это (сама проблема в конце исходника) :
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
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(); 

}
...
Рейтинг: 0 / 0
08.04.2021, 22:14
    #40060839
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
а можно ли прощемиться через указатель базового класса в свойства и методы дочернего ?
static_cast
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
08.04.2021, 22:33
    #40060842
petrav
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
а можно ли прощемиться через указатель базового класса в свойства и методы дочернего ?
andron81,

В большинстве случаев такие желания говорят о том, что в архитектуре программы какой-то говнокосяк.
...
Рейтинг: 0 / 0
08.04.2021, 22:34
    #40060843
andron81
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
а можно ли прощемиться через указатель базового класса в свойства и методы дочернего ?
Dimitry Sibiryakov

static_cast


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

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
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();
}
...
Рейтинг: 0 / 0
08.04.2021, 22:52
    #40060848
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
а можно ли прощемиться через указатель базового класса в свойства и методы дочернего ?
andron81, у тебя по истории постов сначала Java, потом С++.

Редкий кульбит.
...
Рейтинг: 0 / 0
09.04.2021, 07:07
    #40060880
PetroNotC Sharp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
а можно ли прощемиться через указатель базового класса в свойства и методы дочернего ?
andron81,

Прощемится это полиморфизм?))))))
...
Рейтинг: 0 / 0
09.04.2021, 08:29
    #40060893
andron81
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
а можно ли прощемиться через указатель базового класса в свойства и методы дочернего ?
PetroNotC Sharp,

да ))
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / а можно ли прощемиться через указатель базового класса в свойства и методы дочернего ? / 7 сообщений из 7, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]