#3625. [GESP202309 六级 C++] 第 7 题
[GESP202309 六级 C++] 第 7 题
有关下面 C++ 代码的说法,正确的是( )。
#include <iostream>
using namespace std;
class ManyData {
int * __data;
int head, tail, capacity;
public:
ManyData(int cap) {
capacity = cap;
__data = new int[capacity];
head = tail = 0;
}
void push(int val) {
__data[tail++] = val;
}
int pop() {
return __data[--tail];
}
int size() {
return tail - head;
}
};
int main() {
auto myData = ManyData(100);
myData.push(1);
myData.push(2);
myData.push(3);
myData.push(100);
cout << myData.size() << endl;
cout << myData.pop() << endl;
return 0;
}
{{ select(1) }}
- 这段代码不能正常运行。
ManyData类可用于构造队列(Queue)数据结构。- 在上面代码环境,代码
cout<< myData.__data[0] << endl;可以增加到代码main函数末尾(return 0;之前),且不会导致报错。 - 可以为
ManyData类的push()、pop()函数增加异常处理代码,否则在使用ManyData类时可能导致运行时错误或逻辑错误(不一定局限于上述代码中的main函数)。