我正在練習繼承,我有一個叫做Person
的基類。 Person
有一個名爲age
的變量,並且在Person
類的構造函數中,我設置了age
到5
並將年齡打印到屏幕上。我有另一個類叫ballPerson
,從Person
繼承age
和設置age
等於6
。當我爲我的Person
課程和我的ballPerson
課程創建對象時,值5
(Person
課程中的age
的值)會打印兩次。爲什麼?爲什麼繼承值打印兩次?
person.h
class Person
{
public:
Person();
int age;
~Person();
};
Person.cpp
Person::Person() : age(5)
{
std::cout << age;
}
ballPerson.h
class ballPerson : public Person
{
public:
ballPerson();
~ballPerson();
};
ballPerson.cpp
ballPerson::ballPerson()
{
age = 6;
std::cout << age;
}
main.cpp中
int main()
{
Person p;
ballPerson bp;
system("pause");
return 0;
}
我從來沒有在我的球人類創建人的實例,以便它爲什麼叫這個人的構造? – RoundSquare
@RoundSquare因爲它是基類,所以必須先初始化 –
謝謝。我想我現在明白了 – RoundSquare