假如有以下类A: classA{ public: int func(int a){return a*a;) }; 以下程序片段中不正确的是( ) A. A a;a.func(5); B. A*p=new A; p->func(5); C. A a; A& r=a;r.func(5); D. A a,b; if(a!=b) a.func(5);
时间: 2024-02-29 15:55:15 浏览: 48
程序片段中不正确的是 D 选项,`if(a!=b) a.func(5);`。因为在类 A 中并没有定义 `!=` 运算符,所以不能直接比较两个类 A 的对象。正确的比较方式是通过定义 `==` 运算符或者其他相关的成员函数进行比较。其他选项都是正确的方式调用类 A 的成员函数:
- A 选项:通过类 A 的对象直接调用成员函数。
- B 选项:通过类 A 的指针调用成员函数。
- C 选项:通过类 A 的引用调用成员函数。
相关问题
请判断类的声明形式是否正确 classA int x; public: A(int t=θ):x(t){ } int operator- (const AGal){return x-a1.x;} };
这个类的声明形式是不正确的。应该是这样的:
```
class A {
private:
int x;
public:
A(int t=0):x(t){ }
int operator- (const A &a1){return x-a1.x;}
};
```
修正后的类声明中,类名应该是 `A` 而不是 `classA`,并且需要声明类中的成员变量和成员函数的访问权限。此外,`operator-` 的参数应该是 `const A &a1` 而不是 `const AGal`。
35.按要求编写Java程序: (1)编写一个接口:InterfaceA,只含有一个方法int method(int n); (2)编写一个类:ClassA来实现接口InterfaceA,实现int ...
以下是符合要求的Java程序:
```
// 定义接口InterfaceA
interface InterfaceA {
int method(int n);
}
// 实现接口InterfaceA的类ClassA
class ClassA implements InterfaceA {
// 实现method方法,返回参数n的平方
public int method(int n) {
return n * n;
}
}
// 测试类
public class Test {
public static void main(String[] args) {
// 实例化ClassA对象
ClassA obj = new ClassA();
// 调用method方法输出结果
System.out.println(obj.method(5)); // 输出25
}
}
```
说明:
- 接口InterfaceA只含有一个方法int method(int n)。
- 类ClassA通过关键字implements实现了接口InterfaceA,并实现了method方法,返回参数n的平方。
- 测试类Test实例化ClassA对象并调用method方法,输出结果为25。