C açık kelime anlamı nedir?
Birisi C explicit
Kelime Anlamı Hakkında başka bir soru için bir açıklama yayınladı . Ne anlama geliyor?
CEVAP
C derleyici , bir işlev için parametreler gidermek için bir örtük dönüştürme yapmak için izin verilir. Bu ne demek, derleyici kurucular çağrı ile kullanabilirsiniztek parametrebir parametre için doğru tür almak için bir tür diğerine dönüştürmek. İşte örtülü dönüşüm için kullanılabilecek bir kurucu sınıfı: bir örnek
class Foo
{
public:
// single parameter constructor, can be used as an implicit conversion
Foo (int foo) : m_foo (foo)
{
}
int GetFoo () { return m_foo; }
private:
int m_foo;
};
İşte Foo
bir nesneyi alır basit bir fonksiyon:
void DoBar (Foo foo)
{
int i = foo.GetFoo ();
}
ve burada DoBar
fonksiyon denir.
int main ()
{
DoBar (42);
}
Parametre Foo
bir nesne değil, ama int
. Ancak, bu yapıcı, doğru türde parametre dönüştürmek için kullanılabilir int
alır Foo
için bir kurucu var.
Derleyici bu kez her parametre için izin verilir.
Kurucu explicit
anahtar başına örtülü dönüşüm için bu oluşturucu kullanarak derleyici engeller. Yukarıdaki sınıf ekleme bir işlev çağrısı derleyici bir hata oluşturur DoBar (42)
. Şimdi açıkça DoBar (Foo (42))
ile dönüşüm için aramak gereklidir
Bunu yapmak isteyebilirsiniz neden böcek gizleyebilirsiniz kaza sonucu inşaat önlemek için. Yapmacık örnek:
- Verilen boyutta bir dize oluşturur yapıcı
MyString(int size)
bir sınıf var.print(const MyString&)
print(3)
ile bir arama fonksiyonu var. Yazdırmak için beklediğiniz "3", ama uzunluğu 3 boş bir dize yerine yazdırır.
C kelime anlamı kısıtlamak nedir ?...
&Quot;son" fonksiyonları C 11 kel...
Dışarıdan kelime anlamı nedir?...
'' JavaScript anahtar kelime...
&& (Çift) işareti C 11 T anlamı nedir?...