下面代码定义了基于大小为 100 的数组实现的 MoreData 类(__data 为私有成员,含 push()/pop())。关于该代码的说法,错误的是:
#include <iostream>
using namespace std;
class MoreData {
int * __data;
int head, tail, capacity;
public:
MoreData(int cap) {
capacity = cap;
__data = new int[capacity];
head = tail = 0;
}
MoreData & push(int val) {
__data[tail++] = val;
return *this;
}
int pop() {
return __data[head++];
}
int size() {
return tail - head;
}
};
int main() {
auto myData = MoreData(100);
myData.push(1);
myData.push(2);
myData.push(3);
myData.push(11).push(12).push(13);
cout << myData.pop() << endl;
return 0;
}
- A. MoreData 类可用于构造队列(Queue)数据结构。
- B. 第 29 行连续 push() 的用法将导致编译错误。
- C. __data 是 MoreData 的私有成员,只能在类内访问。
- D. 以上说法均没有错误。
正确答案:B