第21420题 单选
有关下列C++ManyData类代码的说法,正确的是?
#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;
}
D

可以为 ManyData 类的 push() 、 pop() 函数增加异常处理代码,否则在使用 ManyData 类时可能导致运行时错误或逻辑错误(不一定局限于上述代码中的 main 函数)。

A

这段代码不能正常运行。

B

ManyData 类可用于构造队列(Queue)数据结构。

C

在上面代码环境,代码 cout<< myData.__data[0] << endl; 可以增加到main函数末尾( return 0; 之前),且不会导致报错。