2015-06-25 71 views
0

我目前正在從一個項目轉換爲使用通過鏈接列表實現的堆棧從後綴到中綴。我試圖採取行,然後推動每個字符到堆棧,但我不斷收到錯誤。無效的用戶從字符錯誤轉換(使用堆棧轉換後綴)

Error: invalid user-defined conversion from ‘char’ to ‘const stack_element& {aka const std::basic_string&}’

這裏是我的代碼:

#include "stack.h" 
string convert(string expression) 
{ 
    stack c; 
    string post = " "; 
    for (int i =0; i<expression.length(); i++) 
    { 
     c.push(expression[i]); 
    } 
} 
int main() 
{ 
    string expression; 
    cout<<" Enter a Post Fix expression: "; 
    getline(cin,expression); 
    return 0; 
} 

,這裏是寫在另一個.cpp文件推送功能

void stack::push(const stack_element & item) 
{ 
    cout<<"Inside push \n"; 
    stack_node *p = new stack_node; 
    p->data = item; 
    p->next = s_top; 
    s_top = p; 
} 

回答

0

不要在你的推送功能都使用const作爲參數

void stack::push(stack_element & item) 
+0

感謝這工作 –

-1

更改void stack :: pu sh(const stack_element & item)

void stack :: push(cons char & item),就像你的情況一樣,你試圖創建字符的stac。如果你想要通用的模板。