定義的模板類成員函數使用命名空間我是新來的C++但據我所知它是壞的使用using namespace
關鍵字的頭文件。我正在嘗試編寫一個模板類,並且已經讀過模板類成員函數的定義必須位於標題中,以及所有模板代碼必須位於同一位置。我的問題是,如果沒有using namespace
關鍵字,可能會寫下所有的代碼。例如在現階段,我有:在頭文件
#ifndef RANDOMTREE_H_
#define RANDOMTREE_H_
template<class T>
class RandomTree {
private:
typedef double (*funcion_ptr) (T, T);
public:
RandomTree(std::vector<T> data, std::vector<funcion_ptr>){
...
}
void train_tree();
};
#endif /* RANDOMTREE_H_ */
但我打算用函數體裏面的一些加強方法等,並想知道是否有一種方法可以不用繼續鍵入前綴std::
和boost::
你爲什麼不那樣做? – Aly
@Aly - 因爲如果我閱讀別人的代碼,我想知道他/她使用哪個名稱 - 他們來自哪個名稱空間。假設你有很多通用名稱,例如'String','Thread'或'Pipe'等等 - 知道它們的名字空間是很好的,特別是在大型項目中 - 所有這些名字都可以在'boost'中定義,在'std'中,在其他一些lib中,或者只是當前項目的本地。 –