我有一個類,如下所示:垃圾值 - 繼承在C++
class base
{
protected:
int x;
int y;
int z;
public:
base(int x, int y, int z)
{
x = x;
y = y;
z = z;
}
virtual void show();
};
我導出從上述作爲一類:
class derived : protected base
{
public:
int a;
int b;
int c;
derived(int a, int b, int x, int y, int z) : base(x, y, z) //initialising the base class members as well
{
cout<<a<<b<<x<<y<<z; //works fine
a = a;
b = b;
}
void show()
{
cout<<a<<b<<x<<y<<z; //show junk values
}
//some data members and member functions
};
在main(),我使用:
derived d(1, 2, 3, 4, 5);
d.show();
數據成員在構造函數中似乎具有合法值。但是,當我使用類似功能時,即使用相同的可見性模式時,垃圾值似乎會出現。
你應該調用派生基礎構造函數爲'base(x,y,z)'? – Vikdor
@Vikdor:是的。糾正。 –