<class>
I geçişine bağlı olarak sınıf oluşturabilen bir şablon sınıfı yazmaya çalışıyorum. Sorun aynı .h
dosyasında bildiremem ve tanımlayamıyorum. Benim projemde, UTF aracı sadece .cpp
dosyaları (kod kapsamı, vb.) Ile çalışabilir. Bir blogda “.h
yerine .cpp
ekle” dediklerini gördüm. Bu tavsiye edilebilir mi? Bu o zaman tavsiye edilmez iseŞablon sınıfı uygulamasında ayrı .h ve .cpp dosyaları
Template.h
#ifndef TEMPLATE_H_
#define TEMPLATE_H_
template<class T>
class Template
{
public:
T Add(T a,T b);
};
#endif /* TEMPLATE_H_ */
Template.cpp
#include "Template.h"
template<class T>
T Template<T>::Add(T a, T b)
{
return a+b;
}
Main.cpp
#include "Template.cpp" //Is this a good practise?
#include <iostream>
int main(int argc, char **argv) {
Template<int> obj;
std::cout<<obj.Add(3,4)<<std::endl;
}
bu sorunu nasıl çözerim? export
?
Bu, tam olarak doğru değildir. Her çeviri birimine ve dolayısıyla ortak uygulamaya tanımlamaların yerleştirilmesi en elverişli olmakla birlikte, bu bir gereklilik değildir. –
@MarkRansom Yup, haklısınız. Ancak, gerekli tüm açık örneklemelerin "önceden" yapılabilmesi oldukça nadirdir. – Angew