Is there a way to access data member values of the Parent by Child? Below example:
.h file:
#ifndef PRAC_H
#define PRAC_H
#include <iostream>
using namespace std;
class ToolFrame {
public:
string mManuID;
void setManuID(string manu_id) { mManuID = manu_id; }
string getManuID() { return mManuID; }
};
class Hammer : public ToolFrame {
int mDurability;
public:
void setDurability(int durability) { mDurability = durability; }
int getDurability() { return mDurability; }
};
.cpp file:
#include "prac.h"
int main() {
ToolFrame xz00;
Hammer bonker100;
xz00.setManuID("00a1d");
bonker100.setDurability(50);
cout << bonker100.getDurability() << endl;
cout << bonker100.getManuID() << endl;
return 0;
}
output: 50
output should be: 50 00a1d
issue: I understood "cout << bonker100.getManuID() << endl;" should access Parent's data member value (mManuID), as the member is not set to private. However, output is not the set value "00a1d".
question: cant children access parent's public value in this manner?
Tried different access specifiers, by moving Parent's data members from private to public. Set link between child and parent to public.
Child classes inherit properties and members, not values. Hammer instance
bonker100has inherited membermManuIDand public (also protected, but there are none in this case) methods of aToolFrame, but it has its member default-constructed.ToolFrameandHammerobjects are not the same - they are different pieces of data and don't share their values.