2013-08-12 31 views
5

Sınıf 'um'ye' Bilinen dönüşüm tip ve

ssm& operator=(ssm& rhs); 

Daha sonra başka bir sınıf (mt3dset) bir üyesi gibi bir SSM nesnesi (itsSSM) kullanmak içinde operator= overloads bir işlevi vardır. Bu üyeyi kurucuda başlatmak için aşağıdaki bildirimi kullanıyorum. o derleyici (g ++ 4.7) ile ilgili bir sorun

error: no match for ‘operator=’ in ‘((mt3dSet*)this)->mt3dSet::itsSSM = ssm()’

error: no known conversion for argument 1 from ‘ssm’ to ‘ssm&’

mi:

itsSSM= ssm(); 

Ama bir hata alıyorum?

cevap

2

Sen

ssm& operator=(const ssm& rhs); 
+1

Açıklaması iyi olurdu * neden * o, böyle yapmalıdır. – Borgleader

+0

@dhavenith Teşekkürler! – George

6

Hayır, derleyici ile ilgili bir sorun olmadığını yapmalıdır (gerekirse daha fazla bilgi için lütfen sorunuz). Yapılandırılmamış bir referansa geçici olarak bağlanamazsınız. Visual C++, bu standart dışı özelliğe izin vermek için bir uzantıya sahip olduğunu unutmayın.

Sadece const olarak kendi argümanını almak için kopya Atama değiştirin:

ssm& operator=(const ssm& rhs);

+0

Çok teşekkürler. Onu gözden kaçırdım! – George