У меня есть класс с нестационарными функциями. Из-за архитектуры моей программы я думаю, что будет лучше использовать статические функции, поскольку класс - это просто утилита. В некоторых случаях мне просто нужна одна функция класса, поэтому я вижу ненужным создание объекта. В основном у меня есть это:Статическая функция от статической функции
class StaticCall
{
public:
StaticCall(){}
static int call_1()
{
std::cout << "In call 1" << std::endl;
call_2();
return 0;
}
static int call_2();
{
std::cout << "In call 2" << std::endl;
return 0;
}
};
int main(int argv, char** argc)
{
std::cout << "Calling 1" << std::endl;
StaticCall::call_1();
std::cout << std::endl;
std::cout << "Calling 2" << std::endl;
StaticCall::call_2();
return 0;
}
Это прекрасно работает, но мне было интересно, могут ли быть проблемы с этим методом. Я могу добиться того же, используя пространство имен, как уже говорят другие сообщения. Но поскольку у меня уже есть класс, я хочу сделать это со статическими функциями.
никаких проблем; 'call_2' из' call_1' всегда вызываются правильно, потому что они находятся в одном классе – nikniknik2016
без проблем, единственное, что нужно учитывать, это то, что в C++ не все должно быть классом, и можно утверждать, что этот класс не является наиболее подходящим построить для этой ситуации. например можно создать экземпляр этого класса, даже если это не имеет смысла. Я бы, по крайней мере, сделал конструктор закрытым. – user463035818
Простое пространство имен с чистыми функциями. вам действительно не нужен какой-либо класс. Правило большого пальца: когда в классе нет элементов данных, лучше использовать чистые функции. – Jojje