#include <iostream> using namespace std; class Exception { public: virtual void showMessage()=0; }; class RangeError:public Exception { public: void showMessage() { cout << "Range Error!"; } }; int main() { try { int n; cout<<"Input n(1<=n<=100):"; cin>>n; if(n<1||n>100) throw RangeError(); } else { throw RangeError(); } } else { cout<<"n:"<<n<<endl; } catch(Exception& e) { e.showMessage(); } }改正这个题目
时间: 2024-02-10 08:11:01 浏览: 120
#include_iostream.h_
4星 · 用户满意度95%
这段代码存在一些语法错误和逻辑错误,以下是修改后的代码:
```
#include <iostream>
using namespace std;
class Exception {
public:
virtual void showMessage() = 0;
};
class RangeError : public Exception {
public:
void showMessage() {
cout << "Range Error!";
}
};
int main() {
try {
int n;
cout << "Input n(1<=n<=100):";
cin >> n;
if (n < 1 || n > 100) {
throw RangeError();
} else {
cout << "n:" << n << endl;
}
} catch (Exception& e) {
e.showMessage();
}
return 0;
}
```
主要的修改包括:
1. 缺少了大括号,造成语法错误;
2. 缺少了 return 0; 语句,造成编译错误;
3. else 语句多余,造成逻辑错误;
4. showMessage() 函数没有实现,造成编译错误。
阅读全文