RichardUSTC

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

2013年3月29日

摘要: 这篇文章对C++的overload、override和overwrite有一个详细的介绍。Java与C++有些不同。例如,父类实现了func()和func(int x),子类继承父类之后只实现func()。C++中,子类的对象无法调用func(int x),而Java中,子类的对象可以调用父类的func(int x)。C++中也可以用using语句来实现类似Java的效果。class Base{ void foo(){...} void foo(int){...}};class Derived:public Base{ using Base::foo; void foo... 阅读全文
posted @ 2013-03-29 20:00 RichardUSTC 阅读(179) 评论(0) 推荐(0) 编辑

摘要: 1. C++继承语法class Derived [: [private|protected|public] Base1, ...]如果没有指定private、protected或public,则默认是private继承。如果是用struct来定义类,那么默认就是public继承。使用这里的private、protected和public是用来控制Derived类的对象和子类对Base1等父类的成员的访问,而Derived类内部对与Base1等父类的成员的访问则只受父类的控制。2. C++支持多重继承,但是这样容易出现菱形继承,容易产生歧义。关于菱形继承,这一有一篇文章可以参考。3. C++中, 阅读全文
posted @ 2013-03-29 18:18 RichardUSTC 阅读(188) 评论(0) 推荐(0) 编辑

摘要: 虚函数语法形式class Foo{ ... virtual void func(); ...};C++虚函数必须和C++的继承结合起来一起看。示例是最好的解释。#include <iostream>using namespace std;class Base{ public: void func1(){ cout<<"I'm Base func1"<<endl; } virtual void func2(){ cout<<"I'm Base func2"<<endl; }... 阅读全文
posted @ 2013-03-29 10:51 RichardUSTC 阅读(274) 评论(0) 推荐(0) 编辑