Aracılığıyla paylaş


Derleyici Hatası C2512

'identifier' : uygun varsayılan oluşturucu yok

Açıklamalar

Bağımsız değişken gerektirmeyen bir oluşturucu olan varsayılan oluşturucu, belirtilen sınıf, yapı veya birleşim için kullanılamaz. Derleyici, yalnızca kullanıcı tanımlı oluşturucu sağlanmadıysa varsayılan bir oluşturucu sağlar.

Geçersiz olmayan bir parametre alan bir oluşturucu sağlarsanız ve sınıfınızın parametre olmadan oluşturulmasına izin vermek istiyorsanız (örneğin, bir dizinin öğeleri olarak), varsayılan bir oluşturucu da sağlamanız gerekir. Varsayılan oluşturucu, tüm parametreler için varsayılan değerlere sahip bir oluşturucu olabilir.

Örnek

C2512 hatasının yaygın nedenlerinden biri, bağımsız değişkenleri alan bir sınıf veya yapı oluşturucu tanımlamanız ve ardından herhangi bir bağımsız değişken olmadan sınıfınızın veya yapınızın bir örneğini bildirmeye çalışmanızdır. Örneğin, struct B aşağıda bağımsız değişken gerektiren bir char * oluşturucu bildirmektedir, ancak bağımsız değişken içermeyen bir oluşturucu bildirilmemiştir. içinde mainbir B örneği bildirilir, ancak bağımsız değişken sağlanmadı. Derleyici, B için varsayılan bir oluşturucu bulamadığından C2512 oluşturur.

// C2512.cpp
// Compile with: cl /W4 c2512.cpp
// C2512 expected
struct B {
   B (char *) {}
   // Uncomment the following line to fix.
   // B() {}
};

int main() {
   B b;   // C2512 - This requires a default constructor
}

Yapınız veya sınıfınız için varsayılan bir oluşturucu ( gibi B() {}) ya da tüm bağımsız değişkenlerin gibi varsayılan değerlere B (char * = nullptr) {}sahip olduğu bir oluşturucu tanımlayarak bu sorunu düzeltebilirsiniz.