Привет ... Разве переменная id_public не должна давать результат 81 и 86?Почему он занимает разные области памяти для обоих производных классов? - PullRequest
0 голосов
/ 28 октября 2018
#include <bits/stdc++.h>
using namespace std;

class Parent {
    public:
    int id_public;
};

class Child1 : public Parent {
    public:
    void setId(int id) {
        id_public = id;
        cout<<id_public<<endl;
    }
};

class Child2 : public Parent {
    public:
    void setId2(int id) {
        cout<<id_public<<endl;
        id_public += id;
        cout<<id_public<<endl;
    }
};

int main() {
    Child1 obj1;
    Child2 obj2;

    obj1.setId(81);
    obj2.setId2(5);

    return 0;
}

1 Ответ

0 голосов
/ 28 октября 2018

Это не имеет ничего общего с двумя классами : у вас просто есть два объекта , каждый из которых имеет свои собственные переменные-члены. Переменная должна быть static для совместного использования (что редко требуется).

...