在 class 中使用私有成员函数

Using a private member function in the class

所以我有这个 class:

这个class的目的是将post固定代数表达式(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);
        }
    }
    //....

私有 class tokenizeStr() 的目的是将字符串标记化并放入 vector<string> tokenizedEx

例如,在我的 main 中,我会

int main()
{
     PostfixExpression test("1 2 3 4 * + -");
}

现在我试图通过私有成员函数 tokenizeStr().

将字符串标记化并更新为 vector<string> tokenizedEx

标记化后,向量中的每个元素都应该包含一个整数或一个运算符,但我似乎找不到调用该函数的方法。

我知道从 main 调用私有成员函数是完全非法的,因为该函数是私有的。

如有任何建议,我们将不胜感激。

我在您的 class 中看到一个 changeToInfix() 方法,您没有显示其实现。该方法应该是调用 tokenizeStr() 的方法。

您的 setPost 方法有什么作用?设置后缀成员?

您可以在调用 setPost 后立即在构造函数中调用 tokenizeStr()。