Kopya oluşturucuları nasıl arayacağımı/oluşturduğumu anlama konusunda sorun yaşıyorum. Sorunum bunu ana olarak nasıl aramaya çalıştığım arasında mı yatıyor? Ya da bunun Animal.cpp'de yapılması gereken belirli bir yol var mı?Kopya Oluşturucuları nasıl doğru şekilde kullanırsınız?
Çalışıyor olsaydı, temel sınıf olarak Animal kullanılarak türetilmiş sınıfları olan bir kopya oluşturucuyu çağırır mıyım?
Animal::Animal(const string &s, const string &c,const string &a, const string &d)
: species(s), classification(c), animal(a), desc(d)
{
}
da const-referansla açık geçiş not: mümkünse
Animal.cpp
#include "Animal.h"
using namespace std;
Animal::Animal()
{
}
Animal::Animal(string s, string c,string a, string d)
{
species = s;
classification = c;
animal = a;
desc = d;
}
Animal::Animal(const Animal &obj)
{
//What should be placed in here?
}
main.cpp
#include <string>
#include <iostream>
#include "Animal.h"
using namespace std;
int main(){
Animal *elephant = new Animal("Straight-Tusked","Mammal","Elephant","Grazer");
Animal *elephant2 = new Animal(*elephant);
}
Başka bir 'Hayvan' ile' Hayvan'ı nasıl oluşturacağınızı tanımlamanız gerekir. Değerleri kopyalayabilir misin? –
Sorunuzla ilgisi yok, fakat Java veya C# arka planından mı geliyorsunuz? Çünkü C++ 'da yeni nesneler yaratmak için 'new' kullanmanız gerekmiyor. Ör. 'Hayvan fil (...);' Tamamen iyi. Ve sonra basitçe 'Animal elephat2 = elephant' yapabilir ve kopya-kurucu çağrılır. –
Lütfen "Animal" sınıfının beyanını gösterin, ya da biz söyleyemeyiz. – MikeCAT