C++中对象初始化,该如何解决

C++中对象初始化
我有以下问题,请大家帮帮:
我先声明了一个基类对象,通过基类的无参数构造函数对该对象初始化(键盘输入数据),然后声明一个它的公有继承的派生类,而这个派生类的对象需要拥有和基类对象相同的数据,但是在继承时并不能将数据继承过来,于是我在派生类中采用已知基类对象作为参数为新声明的派生类对象输出话,使它和基类对象拥有相同的数据,但是这样就遇到问题了,已知对象作为参数传递时会创建该对象的一个副本,这时就必须得再次调用已知对象(也就是基类对象)的构造函数了,前面我也说了我是用基类的构造函数为它的对象初始化的,所以在程序运行时就必须要输入2次初始化基类对象的数据,一次是声明基类对象时,另一次是在声明派生类对象时用基类对象作为参数为新声明对象初始化时。  所以我想问:有没有什么方法可以解决“输入两次初始化数据”这个问题?
C++ 对象

------解决方案--------------------
1.楼主直接贴代码,加点说明肯定会表述的更清楚。
2.“而这个派生类的对象需要拥有和基类对象相同的数据,但是在继承时并不能将数据继承过来”,----无论如何派生类都可以继承基类的非static成员,只是如果在基类中成员是private类型,派生类不可以访问而已。
3.“已知对象作为参数传递时会创建该对象的一个副本,这时就必须得再次调用已知对象(也就是基类对象)的构造函数了”----这里调用的应该是基类的拷贝构造函数,不应该是默认构造函数吧。

------解决方案--------------------
代码贴出来吧
------解决方案--------------------
比较喜欢看代码 
------解决方案--------------------
派生类是包含有基类的私有数据的,只不过是没有直接访问的权限。
可以在基类中添加对这些私有数据的公共接口(或者称方法或函数),那么派生类通过这些函数就可以对基类的数据进行操作。
------解决方案--------------------
这样写写看:

class Base{};
class Drive:public Base{
private :
int a,b,c,d;
public:
Drived(const Base& objBase,int x,int y,int z,int w):Base(objBase),a(x),b(y),c(z),d(w){};
};

Base b;
//cin>>b;

Drive d(b,x,y,z); 

//cout<<d<<endl;