1
我有一個非靜態函數類。由於我的程序的體系結構,我認爲使用靜態函數會更好,因爲類只是一個實用程序。在某些情況下,我只需要該類的一個功能,所以我認爲不必創建該對象。基本上我有這個:靜態函數靜態函數
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_1'的'call_2'總是被正確地調用,因爲它們在同一個類 – nikniknik2016
中沒有問題,唯一需要考慮的是在C++中,並非所有的東西都必須是類,並且可以爭辯說這個類不是最合適的爲這種情況構建。例如可以創建這個類的一個實例,即使它沒有意義。我至少會讓構造函數是私有的。 – user463035818
具有純函數的命名空間將會很好。你根本不需要任何課程。經驗法則:當一個類中沒有數據成員時,使用純函數可能會更好。 – Jojje