读书笔记--继承
来源:互联网 发布:十元夺宝源码 编辑:程序博客网 时间:2024/05/17 08:37
对类所继承的成员的访问由基类中的成员访问级别和派生类派生到列表中使用的访问标号共同控制。
公用继承:基类成员保持自己的访问级别,基类的publci成员为派生类的public,protected,private成员均未改变。
保护继承:基类的public和protected成员在派生类中为protected成员
私有继承:基类的所有成员在派生类中为private成员
class Base
{
public:
void Basemen();
protected:
int i;
};
class Public_derived:public Base
{
public:
int UseBase() //OK
{
return i;
}
};
class Private_derived:private Base
{
public:
int UseBase() //OK
{
retirn i;
}
};
无论派生类列表中是什么访问标号,所有继承Base的类对Base中public成员具有相同的访问
Base b;
Public_derived d1;
Private_derived d2;
b.basemen(); //OK:basemen is public
d1.basemen(); //OK:basemen is public
d2.basemen(); //error:base is private
可通过using来改变成员的访问级别
class Derived:public Base
{
public:
using Base::size;
protected:
using Base::n;
};
struct的默认继承访问级别为public,class则为private.类似于成员保护级别的规定(在struct中,默认的为private,而struct为public)
class Base
{...};
struct D1:Base //publci
{...};
class D2:base //private
{...};
友元可以访问类的private和protected数据,但友元关系不能继承。
class Base
{
friend class Frnd;
protected:
int i;
};
//Frnd has no access to menber in D1
class D1:public Base
{
protected:
int j;
};
class Frnd
{
public:
int men(Base b) //OK:Frnd is friend to Base
{
return b.i;
}
int men(D1 d) //error:frined ship doesn't inherits
{
return d.i;
}
};
//D2 has no access to member in Base
class D2:public Frnd
{
public: //error:frined ship doesn't inherits
int men(Base b)
{
return b.i;
}
}
如果基类定义了static成员,则整个继承层次中只有一个这样的成员
struct Base
{
static void statmen(); //public by default
};
struct Derived:Base
{
void f(const Derived &);
}
void Derived::f(Derived &derived_obj)
{
Base::statmen(); //OK:Base defines statmen
Derived::statmen(); //OK:Derived inherits statmen
//OK:derived objects can used to access static from base
derived_obj.statmen(); //accessed through Derived object
statmen(); //accessed through this class
}
- 读书笔记--继承
- 读书笔记-----类继承
- Hibernate读书笔记---继承映射
- [读书笔记] Lua多重继承
- 读书笔记——继承
- Java读书笔记06 继承
- C++读书笔记之 继承 inheritance
- 读书笔记---继承与多态
- C++ primer读书笔记10-继承
- 《OC基础教程》读书笔记3-继承
- c++ primer读书笔记二类继承
- JavaScript高级程序设计 (6章 继承)---读书笔记
- 《代码大全》读书笔记之 类的继承
- 《javascript设计模式》读书笔记三(继承)
- c++读书笔记——多重继承
- Javascript高级程序设计读书笔记——继承
- C++读书笔记3:继承与多态
- 20161028 Python 读书笔记之类、多态、继承、封装
- java各资源下载地址!
- 系统莫名的挂了。。昨天刚刚搞定。。
- double.c中遇到的问题!!!
- 如何实施集团企业的ERP财务模块
- 大阪第15天
- 读书笔记--继承
- Java精华积累:每个初学者都应该搞懂的问题!
- DOS命令
- 绝 密 飞 行http://www.mmvgg.com/adu/juemfx/index.htm#
- 余时维语录(1)
- 深入理解C语言指针的奥秘
- 应试不是中国教育的原罪
- HQL 语言基本用法
- 余时维语录(2)