#include using namespace std; /* 这行代码报错的原因是: __data 是 ManyData 类的私有成员(private),在类外部无法直接访问。在 C++ 中,以双下划线 __ 开头的成员默认是私有的,而且这个变量确实被声明在类的 private 部分。 要访问类的私有成员,您需要通过类的公有方法(public methods)来进行操作。 要修复这个错误,您应该使用类提供的公有方法 at() 来访问数据。把报错的那行代码改成: */ 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 at(int index) { if (index >= 0 && index < tail - head) { return __data[head + index]; } throw out_of_range("Index out of bounds"); } }; int main() { auto myData = new ManyData(100); myData->push(1); myData->push(2); myData->push(3); myData->push(100); cout << myData->size() << endl; cout << myData->pop() << endl; // cout << myData.__data[0] << endl; cout << myData->at(0) << endl; return 0; }