您的位置:首页 > 编程语言 > C语言/C++

java与C++的虚函数比较

2006-03-20 20:55 381 查看
java与C++的虚函数比较

class base
{
private void print()
{
System.out.println("base");
}
public void doprint()
{
print();
}

}

class derive extends base
{
private void print()
{
System.out.println("derive");
}

}

class testVirtual
{
public static void main(String args[])
{
base b = new derive();
b.doprint();
}

}
运行结果:base

----------------------------------------------------------------------------

c++例子

class base
{
private:
virtual void print()
{
printf("base\n");
}

public:
void doprint()
{
print();
}
virtual ~base(){}
};

class derived : public base
{
virtual void print()
{
printf("derived\n");
}
};

int main(int argc, char* argv[])
{
derived d;
base& b = d;
b.doprint();
return 0;
}

运行结果:

derived

----------------------------------------------------------------
如果将上面JAVA中的private改为public, 则运行结果为derived

通过上面的例子, 应该可以看出C++与JAVA的虚函数异同点.

网上还有人把这二者的总结用下面的对比描述了一下:
C++ Java
虚函数 -------- 普通函数
纯虚函数 -------- 抽象函数
抽象类 -------- 抽象类
虚基类 -------- 接口

我觉得还是很贴切.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: