1.结构
可以将.cpp和.h文件合并成一个.java文件。
可以将.h文件的 class Block {...}和 struct Data {...} 作为Java的内部类来写
.cpp文件的 Block::Block() {} Block::~Block() {} Block::Block(const Block& block) {...} 相当于Java中的有参无参构造函数。
C++中的bool Block::add(...) {...} void SetCols(int& cols) {...} 相当于Java中的方法,
(int& cols) 传的参数是引用,在Java中可以自定义一个对象来传递,
例如:class IntReference{ public int a=0;}
public void SetCols (IntReference cols){ cols.a=1+1;}
2.数据类型
C++ 的 vector 可以转换成 ArrayList 或 LinkedList 具体看添加元素时是 ‘push_back()’ 还是 ‘push_front ()’
C++转换成Java对象、集合、数组基本都要初始化,否则容易NullPointerException。
C++中的对象添加到集合或者数组中后,对象的改变不会影响数组中的值,而Java则相反,所以,C++代码将对象添加到数组中可以用同一个对象名,Java则需要每次都new 一个新的对象来接收或传值,这样可以有效避免数据重复的问题。
3.循环
C++ 的中的 goto 在Java中可以用给循环起别名的方式来达到类似效果。
asd:for(int i = 0; i > 5; i++) {
if(a >= 2) {
i--;
continue asd;
}
}
总结
C++代码转Java代码,最主要的就是指针和引用的问题。