error C3867: “XXX::XXX”: 非标准语法;请使用 “&“ 来创建指向成员的指针。

VS初学C++模板,想用C++写个栈,结果出现error C3867: “XXX::XXX”: 非标准语法;请使用 “&” 来创建指向成员的指针。

因为在其他函数中使用了构造参数的局部变量。

Mystack(const int size) {
     
        p = shared_ptr<T[]>(new T[size]);
        top = -1;
        Size = &size;
    };

bool push( T &t) {
     
        if (top <(size-1)) {
      **这儿的size是构造函数中的局部变量,不能在这儿直接使用**
            top++;
            p[top] = t;
            return true;
        }
        else {
     
            return false;
        }
    };

你可能感兴趣的:(C++错误,c++)