o, bu karmaşık bir iki tasarım paradigmaların bir kavşak hizmet ++ en az C C++ :)
Sınıfların yeni Ziyaretçi için o kadar kolay değil çünkü cevap denemeye değer
bir öğrenci, olsa bile
1) ADT :: temelde yeni bir tür, tamsayılar 'int' veya gerçek sayılar 'çift' gibi bir şey veya 'tarih' gibi yeni bir kavram anlamına gelir. Basit sınıf gibi görünmelidir bu durumda ,
class NewDataType
{
public:
// public area. visible to the 'user' of the new data type.
.
.
.
private:
// no one can see anything in this area except you.
.
.
.
};
bu bir ADT en temel iskeleti ... Tabii kamu alanı göz ardı ederek daha basit olabilir! ve erişim değiştiricilerini (genel, özel) siler ve her şey özel olacaktır. ama bu sadece saçmalık. NewDataType işe yaramaz hale geldiğinden! , yalnızca bildirebileceğiniz bir “int” hayal edin, ancak bununla hiçbir şey yapamazsınız. Daha sonra, NewDataType'ın varlığı için temel olarak gerekli olmayan bazı yararlı araçlara gereksiniminiz vardır, ancak bunları, türünüzün dildeki herhangi bir 'ilkel' türüne benzemesine izin vermek için bunları kullanırsınız. Üste |
Birincisi Oluşturucu. Kurucu, dilde birçok yerde gereklidir. int'ye bakın ve davranışını taklit etmeye çalışalım.
int x; // default constructor.
int y = 5; // copy constructor from a 'literal' or a 'constant value' in simple wrods.
int z = y; // copy constructor. from anther variable, with or without the sametype.
int n(z); // ALMOST EXACTLY THE SAME AS THE ABOVE ONE, it isredundant for 'primitive' types, but really needed for the NewDataType.
yukarıdaki hatlarının her satır
değişken orada oluşturulmuş olur, bir bildirimidir.
ve sonunda
burada derleyici istediğiniz herhangi bir şey söyleyebilir,
int fun()
{
int y = 5;
int z = y;
int m(z);
return (m + z + y)
// the magical line.
}
sihirli satır göreceksiniz, bir işlevde yukarıdaki int değişkenler, bu fonksiyon 'eğlenceli' denir düşünün! her şeyi yaptıktan sonra ve NewDataType öğeniz, işlevdeki yerel kapsam için artık daha yararlı olmaz, KILL IT. klasik bir örnek 'yeni' ile ayrılan hafızayı serbest bırakır!
yüzden bizim çok basit NewDataType
class NewDataType
{
public:
// public area. visible to the 'user' of the new data type.
NewDataType()
{
myValue = new int;
*myValue = 0;
}
NewDataType(int newValue)
{
myValue = new int;
*myValue = newValue;
}
NewDataType(const NewDataType& newValue){
myValue = new int;
*myValue = newValue.(*myValue);
}
private:
// no one can see anything in this area except you.
int* myValue;
};
Şimdi bu kamu işlevleri sağlamak için sahip yararlı bir sınıf oluşturmaya başlamak için, çok temel iskeleti, olur.
, minik araçlar LOT C++ bir sınıf inşa göz önünde bulundurulması gereken
vardır. . . . 2) Nesne: temelde yeni bir tür anlamına gelir, fakat fark, kardeşlere, kız kardeşlere, atalara ve torunlara ait olmasıdır. 'çift' ve 'int', C++ 'ye bakın,' int 'bir' double 'güneşidir, çünkü her' int 'en azından kavram olarak' double 'olur :)
Bu ödevler için _has_! – xian
Ben bu konuda googling aracılığıyla herhangi bir örnek bulamadık inanıyorum. Aşağıdaki örneklerin çoğu, yalnızca diğer web'deki eğiticilerden kopyalananları kopyalayın. –
ciddi olarak çok zor görünmemeliydin. –