2016-03-22 31 views
-2

içeren bir sınıf vektörü oluşturma Alt sınıfları depolamak istediğim bir vektör var. Karşılaştığım sorun, bana bir hata veriyor olmasıdır. Ben bir referans olarak here görünüyordu ama şimdi bu hatayı alıyorum:Alt sınıf

Error: "Subclass::Subclass" (declared at...) is inaccessible.

Kodum aşağıdaki gibidir: class için

class SuperClass 
{ 
public: 
    SuperClass() {} 
    ~SuperClass() {} 

}; 
class SubClass : public SuperClass 
{ 
    SubClass() {} //there is no .cpp 
    ~SubClass() {} 
}; 

int main() 
{ 
    std::vector<SuperClass*> superClass; 
    superClass.push_back(new SubClass()); 
    return 0; 
} 
+0

Lütfen okuyucuların deneyebileceği bir tam ** en az ** örnek gönderin. –

+1

Demek ki, derleyicinin tanılama "erişilemez" diyor her şey. Yapıcıya erişilemez çünkü bir "sınıf" üyeleri varsayılan olarak "özel" dir. Yani ya 'struct' anahtar sözcüğünü kullanın, ya da daha iyi,' public: 'yapıcı tanımından önce erişim belirticisini ekleyin veya ungood,' Program'ın bir 'arkadaşını 'sınıfı yapın. –

cevap

1

varsayılan erişim tipi private olduğunu. Bu nedenle, Subclass'un kurucusu ve yıkıcısı, private'dur. Öncesinde public erişim belirtecini ekleyin.

class Subclass : public SuperClass{ 

    // Add this 
    public: 

     SubClass() {} //there is no .cpp 
     ~SubClass() {} 
    }; 
+0

Çalıştı. Aferin, sadece erişim türünü unuttum. –

İlgili konular