簡體   English   中英

將值傳遞到模板對象中

[英]Passing values into a templated object

我正在重新創建帶有數組的向量類,並且在將值傳遞給我創建的對象以測試函數是否正常工作時出現小錯誤

這是代碼

template<typename T>
class stack
{
public:
void pop()
    {
        S1.pop_back();
    }
void push(T &e)
    {
        S1.push_back(e); 
    }
T& top()
    {
        counter = S1.Counter();
        cout << counter;
        return S1[counter];
    }
bool empty()
    {
        if (S1.Counter() == 0)
            {
                return true;
            }
        else
            {
                return false;
            }
    }
private:
sean<T> S1;
int counter;
};

對象調用

int main(int argc, char *argv[])
{
stack<int> S1;
S1.push(1);


return 0;
}

在主函數中,我只是創建一個“堆棧”對象S1,並想調用push(T&e)函數,但出現錯誤

Initial value of reference to non-const must be an Ivalue

這可能很簡單,但是任何幫助將不勝感激。 謝謝。

您正在嘗試傳遞一個臨時引用,但普通引用只能綁定變量。 這將解決問題:

void push(T const& e)
{
        S1.push_back(e); 
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM