【发布时间】:2015-01-23 21:36:58
【问题描述】:
所以我有这门课:
该类的目的是将后缀代数表达式(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 调用私有成员函数是完全非法的,因为该函数是私有的。
欢迎提出任何建议。
【问题讨论】:
标签: c++ class private-members