Eceksin değil, miras std::vector
Tamam, bu gerçekten zor itiraf etmektir, ama şu an güçlü bir günaha var std::vector
' devralır.
Vektör için 10 özel algoritmalar ihtiyacım var ve bunları doğrudan vektör üyesi olmak istiyorum. Ama doğal olarak da std::vector
's arayüzü. geri kalanını vermek istiyorum Aslında ilk düşündüğüm şey, yasalara saygılı bir vatandaş olarak, MyVector
Sınıf std::vector
bir üyesi oldu. Ama sonra el ile std tüm reprovide olurdu::vektör arabirimi. Yazın için çok fazla. İleri yöntemler reproviding yerine using std::vector::member
Bir avuç'nin kamu bölümünde. yazardım böylece özel miras düşündüm, Bu çok can sıkıcı aslında.
Ve işte buradayım, ben gerçekten sadece halka std::vector
, devralır ama bu sınıf kullanılmamalıdır belgelere bir uyarı polymorphically sağlayabilirim. Çoğu geliştirici bu zaten polymorphically kullanılması gerektiğini anlamak için yeterli sanırım.
Benim kararım kesinlikle haksız mı? Eğer öyleyse, neden? Ek üye olan bir alternatif sağlayabiliraslındaüyeler ancak vektör arabirimi tüm yeniden yazmak anlamına gelmeyecektir? Sanmam, ama eğer yapabiliyorsanız, sadece mutlu olacağım.
Ayrıca, bazı salak gibi bir şey yazabilirsiniz gerçeği dışında
std::vector<int>* p = new MyVector
başka yokgerçekçiMyVector kullanarak tehlike? Gerçekçi söyleyerek ben şey gibi vektör için bir işaretçi alır bir işlevi atmak hayal ...
Eh, benim durumumda belirttim. Ben günah işledim. Beni affetmeni ya da değil :) şimdi
CEVAP
Aslında, hiçbir şey std::vector
ortak miras terslik yok. Eğer bu gerekiyorsa yap.
Eğer öyle ise bunu öneririmgerçektengerekli. Eğer ücretsiz işlevleri (örneğin, bazı devlet tutmalı) ile bunu yapmak için değil sadece.
Sorun MyVector
yeni bir varlık olmasıdır. Yeni C geliştirici yok canım ne kullanmadan önce bilmeniz gereken anlamına gelir. std::vector
MyVector
arasındaki fark nedir? Hangisi orada burada kullanmak daha iyidir? Eğer MyVector
12 *taşımak için ihtiyacım olursa? Sadece swap()
veya kullanabilir miyim?
Yeni varlıklar sadece daha iyi görünmek için bir şeyler yapmak, üretmek değil. Bu varlıklar (özellikle) yaygın vakum yaşamak için gitmiyor. Sürekli artan entropi ile karışık ortamda yaşayacaklar.
Neden java sınıfları uygulanan arabiri...
Neden kütüphanenin 'in vector<...
Neden bedenden't <input> ya...
&; kesme şu anda hit olacak değil". Ka...
Geçersiz bir form='' odaklan...