posts - 58,  comments - 75,  trackbacks - 0
    记得在刚开始学习C++的时候,有一条规定,就是在基类中声明的虚函数,在子类中重载时不要改变这个函数的作用域。例如在基类public中声明的虚函数,在其子类中重载时还应该时public的。
    但我在看DirectShow的代码中发现有的子类改变了父类的虚函数的作用域。先开始想,那帮人怎么会犯这么低级的错误,后来一想应该有其原因。在思考后,觉得改变了父类虚函数的作用域是一件很有趣的事情。如果子类的实例被转换成父类,这个函数是可以调用的,而当他是子类时是不行的。
    突然我发现,这样就要了一个层次的关系,在父类一层,何子类一层。当一个用户在不同的层次时,操作的权利是不同的。它起到了某种限制。
呵呵,好精致的玩意。
posted on 2006-09-15 22:13 walkspeed 阅读(628) 评论(2)  编辑 收藏 引用

FeedBack:
# re: 一个小个感悟
2006-09-27 14:09 | Mongoose
我觉得,不应该说是作用域的问题,应该是访问控制的问题。作用域与访问控制本质上不是一回事。  回复  更多评论
  
# re: 一个小个感悟[未登录]
2007-03-12 09:04 | coffee
访问控制跟作用域也不是一个范畴的东东啊 访问控制也可以通过改变作用域来控制啊  回复  更多评论
  

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理



<2006年9月>
272829303112
3456789
10111213141516
17181920212223
24252627282930
1234567

常用链接

留言簿(4)

随笔分类(64)

随笔档案(58)

文章分类(3)

文章档案(3)

相册

收藏夹(9)

C++零碎

好友

搜索

  •  

积分与排名

  • 积分 - 158013
  • 排名 - 163

最新评论

阅读排行榜

评论排行榜