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
虚函数 -------- 普通函数
纯虚函数 -------- 抽象函数
抽象类 -------- 抽象类
虚基类 -------- 接口
我觉得还是很贴切.
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
虚函数 -------- 普通函数
纯虚函数 -------- 抽象函数
抽象类 -------- 抽象类
虚基类 -------- 接口
我觉得还是很贴切.
相关文章推荐
- C++和Java函数传递数组参数比较
- java、c\c++的函数比较
- C++与JAVA函数参数传递的比较
- 让我们来比较C#,C++和Java之间重写虚函数的区别
- Java与C++函数参数传递比较
- JAVA的Interface观念与C++多重继承的比较
- 33_面向对象_06_虚拟机内存管理_垃圾回收机制_C++和java的比较
- C++中对hash_map自定义哈希函数和比较函数的理解
- 函数绑定在Java和C++中的区别
- 汇编代码插入c++代码及函数效率比较
- 比较C#与C++、Java的异同
- java和c++的比较
- Java中的抽象函数与C++中的虚函数
- C/C++/JAVA中short,int,long等整型表示范围的比较
- C/C++与JAVA函数方法传值原理分析
- java JNI 实例 实现调用c++函数
- java与c++在虚函数方面的异同
- JAVA和C++比较之我见
- C/C++与Java各数据类型所占字节数的详细比较
- C++的继承和Java继承的比较