在下面的代碼中,變量'id'在類Horse中是不可訪問的,這是繼承問題嗎?訪問修飾符問題?任何幫助是極大的讚賞。變量不可訪問?
class Animal
{
private:
int id;
};
class Horse : public Animal
{
public:
Horse(){
if((id % 2) == 1) { id++ };
}
};
在下面的代碼中,變量'id'在類Horse中是不可訪問的,這是繼承問題嗎?訪問修飾符問題?任何幫助是極大的讚賞。變量不可訪問?
class Animal
{
private:
int id;
};
class Horse : public Animal
{
public:
Horse(){
if((id % 2) == 1) { id++ };
}
};
類Horse
只有當你使用繼承在這種情況下,公共和保護的元素:
class Horse : public Animal
繼承id
,您可以在Animal
類中定義這個私有元素作爲保護:
class Animal
{
protected:
int id;
};
乾杯隊友,感謝。 – Emmett
@Emmett請接受答案。 –
你可能想id
爲protected
,而不是private
,然後。或者更好的是,使用您寫入的訪問器...
id
對於Animal
是私有的,因此無法訪問到Horse
。令人滿意的設計是通過getID()
訪問id
,儘管您需要一個setter以及現有的getter方法。
聲明一個變量爲私有會給出一個結果,只有變量被聲明的類才能訪問它,如果你希望繼承基本類的類能夠訪問變量,使用protecte d。
你知道'id'是'private',對吧?你知道什麼是「私人」的測量,對嗎? –