首页产品库评测行情新闻|手机数码笔记本台式机DIY硬件数字家庭数码相机办公外设|软件下载游戏开发|社区

更多

数码相机
MP4
LCD
机箱
音箱

天极网 > 软件频道>C++/CLI思辨录之再谈继承

C++/CLI思辨录之再谈继承

2005-08-17 17:49作者:朱先忠出处:天极网责任编辑:方舟

天极软件专题专区精选     到天极软件“读编交流区”畅所欲言
Google专区 POPO专区 QQ专区 QQ挂机 了解Web2.0
Flash MX 视频教程 Photoshop视频教程 网页设计视频教程 照片处理数字暗房
PPT动画演示教程 Excel动画教程集 Word动画演示教程 Windows Vista专区
特洛伊木马专区 黑客知识教程专区 防火墙应用专区 注册表应用专区
Windows API开发专区 网络编程专区 VB数据库编程专区 图像处理与多媒体编程

  在面向对象编程领域一个关键的概念是继承。

  在OO和C++中,类成员共有三种级别的继承:public,protected和private。对于基类成员的存取操作应该依赖于下面两个因素:

  ·派生类声明其类头(public, protected 或 private)的方式

  ·对类成员的存取指定标志(public, protected 或 private)

  如果你在基类中声明成员为private,那么这些成员对于任何派生类都是不可存取的。

  如果你在基类中声明成员为protected,而且新类是基类的私有派生,那么这些成员在派生类中变为私有的。

  如果你在基类中声明成员为protected,而且新类是基类的protected 型派生,那么这些成员在派生类中变为protected 的。

  如果你在基类中声明成员为protected,而且新类是基类的public 型派生,那么这些成员在派生类中变为protected的。

  如果你在基类中声明成员为public,而且新类是基类的private 型派生,那么这些成员在派生类中变为private 的。

  如果你在基类中声明成员为public,而且新类是基类的protected 型派生,那么这些成员在派生类中变为protected的。

  如果你在基类中声明成员为public,而且新类是基类的public 型派生,那么这些成员在派生类中变为public 的。

  这是一些老式的C++规则。在.Net中,情况就大大不同了-.Net仅支持public继承。但是当一个类被public继承,则基类的保护成员将对新的派生类成为private的。

  考虑下面的三个C++类:

class A
{
 protected: void fa()
 { printf("fa called"); }
};
class B : public A
{
 public: void fb()
 { fa(); }
};
class C : public B
{
 public: void fc()
 { fa(); }
};
int main()
{
 C c;
 c.fc();
 return 0;
}

  根据我前面介绍的规则,在C++中这些代码是能成功运行的。但是如果你把它们改变为托管类,则在类c中是不能调用fa()的。

关注此文的读者还看过:

返回软件频道首页

共1页。 1
  • 1.C++/CLI思辨录之再谈继承

软件频道最新更新

热点推荐

天极服务|关于我们|About us|网站律师|RSS订阅|友情合作|加入我们|天极动态|网站地图|意见反馈|MSN/QQ上看天极
Copyright (C) 1999-2012 Yesky.com, All Rights Reserved 版权所有 天极网络