Sınıf Vektörü oluşturduğumda neden çakıldığını bilmiyorum. Lütfen yardım et. Bu programda bir dizi içine herhangi bir eleman eklemek istiyorum. Ben Şablon sınıfı tanımlanır aynı başlığında (kurucu tanımları dahil) üye işlev tanımları yerleştirmeniz gerekir, Çapraz gcc ile tutulma UbuntuBoş Konsollarla Varsayılan Oluşturucu C++ Hatası
template<typename T>
class Vector{
public:
Vector();
void add(const T&);
private:
T *elem;
int cap;
int len;
};
template<typename T>
Vector<T>::Vector(){
len = 0;
cap = 30;
elem = new T[cap];
}
template<typename T>
void Vector<T>::(const T& m){
elem[len] = m;
len ++;
}
// Here I create Vector v, if I put Vector<int> v() I don't get error
Vector<int> v; //error "undefined reference to `Vector<int>::Vector()"
v.add(21); //error
Lütfen bir [mcve] belirtin. – Barry
@Brian "Çok ilginç özellikler" kullanmadığınız için çok eğlenceli. Bunu hayal bile edemiyorum. :) –
Derleyicinin, 'Vector 'nu kullanmayı planladığınız noktadaki şablon tanımlarının (hem Vector sınıfı hem de onun üye işlevleri) görünürlüğüne ihtiyacı var. Ayrı derleme ve şablonlar birlikte iyi oynamıyor. Sınıfı bildiren üstbilgide üye işlevlerinin tanımını yerleştirin ve 'Vector' şablonunu kullanması gereken kodda bu başlığı dahil ettiğinizden emin olun. [Bu tam bir cevap değil]. –
Peter