-2
#include <iostream>
#include <string>
using namespace std;

class parent
{
    int x=0;
    public:
    int getx()
    {
        return x;
    }
};

class child : public parent
{
    int x=7;
};
int main()
{
  parent cat;
  cout << cat.getx();
  child s;
  cout << s.getx();    //stops working here
  return 0;
}

Here is an example of the issue I am having. Why doesn't it print 7 when i call cout << getx() as a derived object?

dfries
  • 1
  • 1

1 Answers1

-1
#include <iostream>
#include <string>

class parent
{
protected:
    int m_x;
public:
    parent(int x = 0) : m_x(x) {}
    int getx(){return m_x;}
};
class child : public parent
{
public:
    child():parent(7){}
};
int main()
{
  parent cat;
  std::cout << cat.getx() << std::endl;

  child s;
  std::cout << s.getx() << std::endl;

  return 0;
}

Result

dgs@dhome:~/Develop/Test2$ make getx
g++     getx.cpp   -o getx
dgs@dhome:~/Develop/Test2$ ./getx
0
7
dgsomerton
  • 105
  • 5