gpt4 book ai didi

c++ - 如何正确使用new运算符(C++)

转载 作者:行者123 更新时间:2023-11-30 05:45:29 25 4
gpt4 key购买 nike

我有 Stack 类:

class Stack {
private:
int top;
int capacity;
int *storage;
public:
Stack(int capacity) {
if (capacity <= 0)
throw string("Stack's capacity must be positive");
storage = new int[capacity];
this->capacity = capacity;
top = -1;
}

void push(int value) {
if (top == capacity)
throw string("Stack's underlying storage is overflow");
top++;
storage[top] = value;
}

...

我尝试用

分配它
Stack* s = new Stack (100);

当我尝试执行 Stack 的任何功能(例如推送)时,我收到错误 C2228:'.push' 的左侧必须具有类/结构/union 。有人可以解释如何以正确的方式做到这一点吗?

最佳答案

s 是指向堆栈的指针。使用 -> 运算符访问类方法(函数)。

在你的情况下会是s->push(10);

关于c++ - 如何正确使用new运算符(C++),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29352899/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com