[英]Using a private member function in the class
所以我有這個課:
此類的目的是將后綴代數表達式(1234 * +-)更改為中綴表達式(1 * 2 + 3-4)。
class PostfixExpression
{
private:
string postfix;
vector<string> tokenizedEx;
double result;
void tokenizeStr(); // Where do I call this?
public:
PostfixExpression(string p);
//mutators, and accessors for string and double only
//no accessor and mutator for vectors
string changeToInfix() const;
};
PostfixExpression::PostfixExpression(string p)
{
setPost(p);
}
//mutators, and accessors
void PostfixExpression::tokenizeStr()
{
stringstream ss(postfix);
tokenizedEx.clear();
string hold;
int i = 0;
while (ss >> hold)
{
tokenizedEx.push_back(hold);
}
}
//....
私有類tokenizeStr()
的目的是標記字符串並將其放入vector<string> tokenizedEx
。
舉例來說,我主要是
int main()
{
PostfixExpression test("1 2 3 4 * + -");
}
現在,我嘗試對字符串進行標記化,並通過私有成員函數tokenizeStr()
將其更新為vector<string> tokenizedEx
。
標記化后,向量中的每個元素都應包含一個整數或一個運算符,但我似乎找不到找到調用該函數的方法。
我知道從main調用私有成員函數完全是非法的,因為該函數是私有的。
任何建議表示贊賞。
您的setPost方法做什么? 設置后綴成員?
您可以在調用setPost之后立即在構造函數中調用tokenizeStr()。
我在您的類中看到了一個changeToInfix()方法,但尚未顯示其實現。 該方法應該是調用tokenizeStr()的方法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.