// proj1.cpp #include <iostream> using namespace std; class MyClass { public: MyClass(int len) { array = new int[len]; arraySize = len; for(int i = 0; i < arraySize; i++) array[i] = i+1; } ~MyClass() { // ERROR **********found********** delete [] array; } void Print() const { for(int i = 0; i < arraySize; i++) // ERROR **********found********** cout << array[i] << ' '; cout << endl; } private: int *array; int arraySize; }; int main() { // ERROR **********found********** MyClass obj(10); obj.Print(); return 0; }
时间: 2023-07-05 07:29:23 浏览: 105
matlab如何敲代码-detectionAnalysis:http://web.engr.illinois.edu/~dhoiem/proj
以下是将 C++ 代码转换为 Java 代码的示例:
```java
// proj1.java
import java.util.*;
class MyClass {
private int[] array;
private int arraySize;
public MyClass(int len) {
array = new int[len];
arraySize = len;
for (int i = 0; i < arraySize; i++) {
array[i] = i + 1;
}
}
protected void finalize() throws Throwable { // ERROR **********found**********
super.finalize();
// Free the resources
if (array != null) {
Arrays.fill(array, 0);
array = null;
}
}
public void Print() {
for (int i = 0; i < arraySize; i++) { // ERROR **********found**********
System.out.print(array[i] + " ");
}
System.out.println();
}
}
public class proj1 {
public static void main(String[] args) {
MyClass obj = new MyClass(10); // ERROR **********found**********
obj.Print();
}
}
```
请注意,Java 中没有析构函数,因此我们使用了 `finalize()` 方法来释放资源。另外,在 Java 中不需要使用 `using namespace std` 来导入命名空间。
阅读全文