摘要:
这篇文章对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... 阅读全文
摘要:
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++中, 阅读全文
摘要:
虚函数语法形式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; }... 阅读全文