Adobe Interview Question
Country: United States
i think they looking virtual copy constructor
concept how u will implement it.
this is well known problem
For this abstract class will declare a pure virtual clone method and all derived class will inherit it
class Base
{
public:
virtual Base* clone() = 0; //polymorphic nature
};
class Derived1 : public Base
{
public:
Base* clone()
{
return new Derived1(*this);
}
};
class Derived2 : public Base
{
public:
Base* clone()
{
return new Derived2(*this);
}
};
int main()
{
Base* p = new Derived1();
Base* q = new Derived2();
vector<Base*> v;
v.push_back(p);
v.push_back(q);
//Now suppose u need to clone this vector object
vector<Base*> vc;
for_each(Base* x : v)
vc.push_back(x->clone());
}
i think they looking virtual copy constructor concept how u will implement it.
- satveer October 19, 2014this is well known problem
For this abstract class will declare a pure virtual clone method and all derived class will inherit it
class Base
{
public:
Base* clone() = 0;
};
class Derived1 : public Base
{
public:
Base* clone()
{
return new Derived1(*this);
}
};
class Derived2 : public Base
{
public:
Base* clone()
{
return new Derived2(*this);
}
};
int main()
{
Base* p = new Derived1();
Base* q = new Derived2();
vector<Base*> v;
v.push_back(p);
v.push_back(q);
//Now suppose u need to clone this vector object
vector<Base*> vc;
for_each(Base* x : v) vc.push_back(x->clone());
}