美文网首页
Geekband-job3-note

Geekband-job3-note

作者: freedomywb | 来源:发表于2016-05-22 14:46 被阅读0次

1、继承

C++类的3种继承方式,分别是public继承,protected继承,private继承。
最常用的还是public继承。class默认的是private继承,它的member如果没写权限也是默认private。struct则相反,默认的是public继承。派生类型必须对想要重定义的每个继承成员进行声明(virtual 函数)。

像 private 成员一样,protected 成员不能被类的用户访问。像 public 成员一样,protected 成员可被该类的派生类访问。派生类只能通过派生类对象访问其基类的 protected 成员,派生类对其基类类型对象的 protected 成员没有特殊访问权限。

void Bulk_item::memfcn(const Bulk_item &d, const Item_base &b)

{

// attempt to use protected member

double ret = price; // ok: uses this->price

ret = d.price; // ok: uses price from a Bulk_item object

ret = b.price; // error: no access to price from an Item_base

}

• 如果是公用继承,基类成员保持自己的访问级别:基类的 public 成员为

派生类的 public 成员,基类的 protected 成员为派生类的 protected

成员。

• 如果是受保护继承,基类的 public 和 protected 成员在派生类中为

protected 成员。

• 如果是私有继承,基类的的所有成员在派生类中为 private 成员。

      如果基类定义 static 成员,则整个继承层次中只有一个这样的成员。

      要确定到基类的转换是否可访问,可以考虑基类的 public成员是否访问,如果可以,转换是可访问的,否则,转换是不可访问的

相关文章

  • Geekband-job3-note

    1、继承 C++类的3种继承方式,分别是public继承,protected继承,private继承。最常用的还是...

网友评论

      本文标题:Geekband-job3-note

      本文链接:https://www.haomeiwen.com/subject/esworttx.html