Neden göster C tipi değişken kullanıldığında boş bir yapıcı gerektirir []?
Ayrıca Bkz: http://stackoverflow.com/questions/695372/c-standard-list-and-default-constructible-types
Dersime hiç belli argümanlar örneği olmak istemiyorum gibi çok büyük bir sorun değil, sadece can sıkıcı.
class MyClass
{
public:
MyClass(MyType1 t);
MyType2 &operator[](int index);
}
map<int, MyClass> myMap;
Bu bana g aşağıdaki hata verir:
/usr//c /4.3/bit/stl_map vardır.:419 h: hata: arama için eşleştirme fonksiyonu ‘() Sınıfım’
Bu varsayılan bir kurucu eklersem iyi derler; yanlış sözdizimi kaynaklanan bir şey değil eminim.
CEVAP
Bu sorun operatör ile birlikte[]. BİLGİSAYARINIZDA belgeler: teklif
data_type& operator[](const key_type& k)
- Döner nesnesine bir başvuru belli bir ile ilişkili anahtar. Eğer haritanız yoksa değil böyle bir nesne,operator[]
içerir ekler varsayılan nesnedata_type()
.
Eğer varsayılan kurucu yok eğer doğru değilse Ekle işlevleri bul/kullanabilirsiniz. Bir sonraki örnek olacak eserler:
myMap.insert( std::map< int, MyClass >::value_type ( 1, MyClass(1) ) );
myMap.find( 1 )->second;
Neden pthreads’ durumu değişken fonksi...
Neden' ◎ܫ◎ ve fonksiyonu t JavaSc...
Neden bir JavaScript değişken dolar iş...
Neden değişken yapılar“”? kötü...
Nedeninin ne olduğu neden Göster.get(O...