易截截图软件、单文件、免安装、纯绿色、仅160KB

C++和Java的多继承


多继承:
C++中的类可以直接实现多继承 如:class D:public A,public B,public C{……};
Java中不能直接实现这样的多继承,但是可以用接口(interface)来间接实现 如:
public class A{ ……}
public interface C{
  public void c1();
  public void c2();
}
public class C extends A implements B{
  //若A中有构造函数则在子类中必须手动调用构造函数  super(<参数>);
  //必须重写接口B的所有方法
        public void c1(){ // 实现接口 }
        public void c2(){ //实现接口 }
  ……
}
从上面的代码我们还可以发现一个细节:C++中类的定义必须在类体的大括号后加上一个分号(;)但是Java中没有这样的要求。
在c++的多继承中,要注意这样一个问题:基类A,子类B、C继承基类A,子类D同时继承自B和C,代码如下:
#include<iostream>
using namespace std;
class A{
 public:
int iVarA;
};
class B:public A{ //继承
public:
 int iVarB;
};
class C:public A{
public:
int iVarC;
};
class D:public B,public C{
public:
int iVarD;
};
int main(){
D Dtemp;
Dtemp.iVarA = 10; //注意这里产生了歧义 VC6.0报错:error C2385: 'D::iVarA' is ambiguous(歧义的)
return 0 ;
}
产生上面的歧义是由于在Dtemp中变量iVarA的引用是歧义的。这种歧义性是由于D通过类B继承了iVarA的一份拷贝,又通过C继承了iVarA的一份拷贝。
解决这个问题可以有两种方法,其一使用作用域分解运算符:
int main(){
D Dtemp;
Dtemp.B::iVarA = 10;
Dtemp.C::iVarA = 10;
return 0;
}
那么另一种方法就是使用虚基类,详见下一篇..


相关文档:

java 基础

1 import
2 package
3 修饰符
4 抽象类 接口
5 static
6 String相关
7 javadoc
8 异常
9 日期相关
10 输入输出流
11
一 import
     import用于导入不同包中的类,不同包中的类名可以相同。
     用*号只能导入一个包,不能使用  import java.* 或者 java.*. ......

Java Swing JEditorPane

JEditorPane提供三种类型的文本显示,text/plain,text/html,text/rtf.
JEditorPane的简单用法DEMO如下:
package ibees.swing;
import java.awt.Toolkit;
import java.io.IOException;
import javax.swing.JEditorPane;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.event.Hype ......

Java 中队列的使用

刚才看见群里的一个朋友在问队列的使用,确实在现实的写代码中很少使用队列的,反正我是从来没使用过。只是学数据结构的时候学过。
下面是我写的一个小例子,希望有不足之处请提出改正。O(∩_∩)O~
看代码:
import java.util.LinkedList;
import java.util.Queue;
public class TestQueue
{
/**
* @param ......

标准C/C++程序通过gSOAP调用WebService

转自:http://commandos.blog.51cto.com/154976/130652
一、 环境准备
在本文中,所有程序均在Linux下开发完成,经测试能够正常运行。
在开发过程中,我们需要用到gSOAP,可以从以下网址下载获得:[url]http://www.cs.fsu.edu/~engelen/soap.html[/url]
我下载的是gsoap_2.7.12.tar.gz
下载下来解压缩,按正常安装过 ......

C/C++函数调用约定


关于 C/C++ 函数调用约定,大多数时候并不会影响程序逻辑,但遇到跨语言编程时,了解一下还是有好处的。
VC 中默认调用是 __cdecl 方式,Windows API 使用 __stdcall 调用方式,在 DLL 导出函数中,为了跟 Windows API 保持一致,建议使用 __stdcall 方式。
调用约定跟堆栈清除密切相关。如果写一个汇编函数,给 C/C++ ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号