我是一個總noob。在一個類中保存函數C++
我已經創建函數爲int到字符串和字符串到int轉換。
我想救他們,所以我可以在任何程序中使用它們,這樣我就可以叫他們像#include <iostream>
難道我通過創建一個類來完成此(當時沒有私有成員變量?)
如果我把它作爲一個類,我如何使用函數而不創建對象?
基本上我想創建自己的cmath或字符串類的東西,但我甚至不知道怎麼稱呼它來找出如何使它。
我是一個總noob。在一個類中保存函數C++
我已經創建函數爲int到字符串和字符串到int轉換。
我想救他們,所以我可以在任何程序中使用它們,這樣我就可以叫他們像#include <iostream>
難道我通過創建一個類來完成此(當時沒有私有成員變量?)
如果我把它作爲一個類,我如何使用函數而不創建對象?
基本上我想創建自己的cmath或字符串類的東西,但我甚至不知道怎麼稱呼它來找出如何使它。
如果你只是簡單的函數,你可以把它們放在一個命名空間,它也像一個容器,然後把它們放在一個單獨的cpp文件中,並創建一個包含原型的.h
文件。
即對mymath.h:
#ifndef MYMATH_H
#define MYMATH_H
namespace mymath
{
int dosomething(int y);
}
#endif
,並在mymath.cpp:
#include "mymath.h"
int mymath::dosomething(int y)
{
}
然後,當你想使用它,您包括您#include "mymath.h"
文件和鏈接,以CPP你的項目。
#include <iostream>
class Tools {
public :
void static sneeze();
};
void Tools::sneeze()
{
std::cout << "atchoum";
}
int main() {
Tools::sneeze(); // atchoum
}
頭文件怎麼樣?爲什麼不命名空間?命名空間的工作方式非常類似於界面,您只需收集所有類似主題的功能,以便您擁有一個可放置在程序中的工具的空間。我希望降低我的帖子的人解釋他爲什麼這樣做。 – kotlomoy
這不是我。但是,倒退是因爲你的榜樣不好,我想。你不使用頭文件。你也可以使用'class'而不是'namespace'。 – kotlomoy
工具箱是一個對象嗎?一個工具箱可以放在命名空間'garage'中。加上我只是沒有明確地將聲明分離到每個文件,因爲它是更短,更容易閱讀,因爲它是一個例子。 – user544262772
mystring.hpp
#ifndef MYSTRING_HPP
#define MYSTRING_HPP
#include <string>
namespace n_mystring
{
std::string & IntToString(int Int);
int StringToInt(std::string & String);
}
#endif
mystring.cpp
#include "mystring.hpp"
std::string & n_mystring::IntToString(int Int) {
//.... implementation
};
int n_mystring::StringToInt(std::string & String) {
//.... implementation
};
你並不需要的一切類在C++中。您可以使用非成員函數(通常在名稱空間內部避免名稱衝突)。另請注意,C++標準庫已經提供了您提到的功能。 – juanchopanza
免費功能很好,但名稱空間包裝將是一個好主意。 –