你能給我爲例子私有繼承在C++
?據我瞭解,在這種繼承方式下,公衆和父母的受保護特徵不會過濾患兒,只能看到兒童的公共特徵。
0
A
回答
2
私有繼承:
基類的所有成員Public
成爲派生類&
的Private
成員的基類的所有成員Protected
成爲派生類的Private
成員。
的代碼示例:
Class Base
{
public:
int a;
protected:
int b;
private:
int c;
};
class Derived:private Base //Not mentioning private is OK because for classes it defaults to private
{
void doSomething()
{
a = 10; //Allowed
b = 20; //Allowed
c = 30; //Not Allowed, Compiler Error
}
};
class Derived2:public Derived
{
void doSomethingMore()
{
a = 10; //Not Allowed, Compiler Error, a is private member of Derived now
b = 20; //Not Allowed, Compiler Error, b is private member of Derived now
c = 30; //Not Allowed, Compiler Error
}
};
int main()
{
Derived obj;
obj.a = 10; //Not Allowed, Compiler Error
obj.b = 20; //Not Allowed, Compiler Error
obj.c = 30; //Not Allowed, Compiler Error
}
如果你傾向於瞭解繼承&訪問說明,你可以在更this答案我張貼相當長的一段前退房。
0
私有繼承通常用作組合形式。與具有繼承類型的成員變量沒有多大區別。
這意味着
在某些罕見的情況下,邊緣「在...的術語實施」時,它可以比具有一個成員變量更有效。
我知道私人遺產最常見的用法是boost::noncopyable
相關問題
- 1. C#中的私有繼承?
- 2. 組成了私有繼承
- 3. Objective-C私有財產繼承
- 4. JavaScript中的私有繼承
- 5. 私有繼承和交換
- 6. 私有繼承或遏制
- 7. 私有成員的繼承
- 8. 私有變量繼承
- 9. 繼承和私有成員
- 10. 繼承和私有變量
- 11. 繼承和私有方法
- 12. 私有繼承VS遏制
- 13. 受保護/私有繼承鑄造
- 14. 來自std :: basic_string的私有繼承
- 15. 私有繼承和非虛擬接口
- 16. 公開從基類繼承,從派生的類私有繼承
- 17. 私有繼承:名稱查找錯誤
- 18. 私人與公共繼承
- 19. 從具有私有內部類的類繼承C++
- 20. 私有繼承中的對象切片
- 21. 私有或公開從boost :: non_copyable繼承?
- 22. Python3:類繼承和私有字段
- 23. 反映在繼承私有方法
- 24. 私有方法,繼承和元編程?
- 25. 類繼承和私有變量在JS
- 26. 函數模板和私有繼承
- 27. 私有靜態成員和繼承
- 28. 繼承和私有實例變量
- 29. 公開添加,但繼承私有
- 30. Java繼承私有和公共秩序