2013-06-01 79 views
0

我是一個總noob。在一個類中保存函數C++

我已經創建函數爲int到字符串和字符串到int轉換。

我想救他們,所以我可以在任何程序中使用它們,這樣我就可以叫他們像#include <iostream>

難道我通過創建一個類來完成此(當時沒有私有成員變量?)

如果我把它作爲一個類,我如何使用函數而不創建對象?

基本上我想創建自己的cmath或字符串類的東西,但我甚至不知道怎麼稱呼它來找出如何使它。

+3

你並不需要的一切類在C++中。您可以使用非成員函數(通常在名稱空間內部避免名稱衝突)。另請注意,C++標準庫已經提供了您提到的功能。 – juanchopanza

+1

免費功能很好,但名稱空間包裝將是一個好主意。 –

回答

1

如果你只是簡單的函數,你可以把它們放在一個命名空間,它也像一個容器,然後把它們放在一個單獨的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你的項目。

+1

你在mymath.cpp中忘了'#include「mymath.h」'。此外,在定義 – kotlomoy

+0

「int mymath :: dosomething(int y)'更正;),感謝 – Devolus

+0

這似乎是在正確的軌道上,現在我有inttostring工作的問題,但stringtoint是紅色下劃線(visual express 2010)並且錯誤是「表達式必須有一個指向函數的類型」 –

-3
#include <iostream> 

class Tools { 
    public : 
     void static sneeze(); 
}; 

void Tools::sneeze() 
{ 
    std::cout << "atchoum"; 
} 


int main() { 
    Tools::sneeze(); // atchoum 
} 
+0

頭文件怎麼樣?爲什麼不命名空間?命名空間的工作方式非常類似於界面,您只需收集所有類似主題的功能,以便您擁有一個可放置在程序中的工具的空間。我希望降低我的帖子的人解釋他爲什麼這樣做。 – kotlomoy

+0

這不是我。但是,倒退是因爲你的榜樣不好,我想。你不使用頭文件。你也可以使用'class'而不是'namespace'。 – kotlomoy

+0

工具箱是一個對象嗎?一個工具箱可以放在命名空間'garage'中。加上我只是沒有明確地將聲明分離到每個文件,因爲它是更短,更容易閱讀,因爲它是一個例子。 – user544262772

-1

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 
}; 
相關問題