与抽象函数的一致性

问题描述

我在类中多次使用以下函数进行抽象:

void Interpreter::pushToStack(int value)
{
    stack.push_back(std::to_string(value));
}

现在我有一个执行此功能功能

stack.push_back(stack.back());

这是不好的做法吗?在使用抽象函数时不一致会不好吗?因为我认为我不能真正使用pushToStack(int),因为它需要一个整数,并且我想按stack.back()

谢谢!

解决方法

为了保持一致,您可以为字符串添加重载

void Interpreter::pushToStack(int value)
{
    stack.push_back(std::to_string(value));
}

void Interpreter::pushToStack(std::string value)
{
    stack.push_back(value);
}

,然后在所有呼叫点都使用相同的方法

pushToStack(5);
pushToStack(stack.back());