#include<iostream> using namespace std; class point { private; float x,y; public: void init(float,float); void show(); } void init(float a,float b) { x=a; y=b; } void show() { cout<<x<<"--"<<y<<endl; } void main() { point p; init(10.5,50.5); show(); }找出其中错误并改正
时间: 2024-01-30 08:02:58 浏览: 70
有几个错误需要修正:
1. 在类定义中,`private`和`public`应该以冒号结尾。
2. 在类定义中,成员变量x和y应该在`private`关键字下声明。
3. 在类定义中,成员函数init和show应该在`public`关键字下声明。
4. 在成员函数定义中,应该在函数名前加上类名point。
5. 在成员函数定义中,应该使用作用域解析运算符`::`来访问类的成员变量和成员函数。
6. 在主函数中,应该使用对象p来调用成员函数init和show。
下面是修改后的代码:
```c++
#include<iostream>
using namespace std;
class point {
private:
float x,y;
public:
void init(float,float);
void show();
};
void point::init(float a,float b) {
x=a;
y=b;
}
void point::show() {
cout<<x<<"--"<<y<<endl;
}
int main() {
point p;
p.init(10.5,50.5);
p.show();
return 0;
}
```
修改后的代码中,类的成员变量和成员函数已经被正确访问,代码可以正确运行。
相关问题
指出下面程序中的错误,说明错误的原因,并进行改正 #include <iostream>using namespace std;class Student {public: char name[10]; int age; float aver; void printStu();};int main() { Student p1,p2,p3; p1.age = 30; return 0;}
该程序存在两个错误,包括:
1. `#include <iostream>using namespace std;` 应改为 `#include <iostream> using namespace std;`
2. `Student p1,p2,p3;` 中的逗号应该为英文逗号,否则编译器将无法正确识别变量声明。应改为 `Student p1, p2, p3;`
改正后的代码如下:
```
#include <iostream>
using namespace std;
class Student {
public:
char name[10];
int age;
float aver;
void printStu();
};
int main() {
Student p1, p2, p3;
p1.age = 30;
return 0;
}
```
#include <iostream> using namespace std; int m; void max(float a, float b) { // 获取最大值 m = a>b ? a : b; } int main(void) { max(3, 4); cout << m << endl; }
这段代码的问题在于,变量m的类型是int,而max函数中获取的最大值的类型是float,因此会出现类型转换错误。应该将变量m的类型改为float或者将max函数中获取的最大值的类型改为int。此外,建议在定义函数时加上返回类型。修改后的代码如下:
```
#include <iostream>
using namespace std;
float m;
float max(float a, float b) {
// 获取最大值
m = a>b ? a : b;
return m;
}
int main(void) {
cout << max(3, 4) << endl;
return 0;
}
```
阅读全文