Can someone please explain why q[0].data->f3() is not working in function xyz() of class p. while sa.data->f3(); is working however I pushed same object in vector. I am not sure what is causing this issue. While debugging GDB I am getting this error at the same line: Cannot find bound of current function
#include <iostream>
#include <vector>
using namespace std;
class x{
public:
virtual int f1() = 0;
virtual int f3(){
return 0;
}
};
class y : public x{
public:
virtual int f1(){
return 0;
}
virtual int f3(){
return 1;
}
y(){
cout<< " in y" << endl;
}
};
class z{
public:
int k;
x * data;
z(){
cout << " in z " << endl;
y yy;
data = &yy;
}
};
class p{
public:
vector<z> q;
int xyz(){
cout<< "In XYZ " << endl;
z sa;
cout << sa.data->f3() << endl;
q.push_back(sa);
cout << q[0].data->f3();
}
};
int main(){
p pp;
pp.xyz();
return 0;
}