SORU
24 Kasım 2010, ÇARŞAMBA


E çift kolon " ne anlama geliyor;::" sınıf adı için?

Değiştirmek için var olan bir sınıf içinde bu kod satırı buldum:

::Configuration * tmpCo = m_configurationDB;//pointer to current db

ve tam olarak çift kolon sınıf adının başına ne anlama geldiğini bilmiyorum. Ben okurdum o olmadan: sınıfın bir nesnesi için bir işaretçi olarak tmpCo beyanı Configuration... ama e çift kolon kafamı karıştırdı.

Ben de buldu

typedef ::config::set ConfigSet;

CEVAP
24 Kasım 2010, ÇARŞAMBA


Bu karar, şu anda içinde bulunduğun ad başlayarak yerine genel ad alanından oluşur sağlar. Eğer olsaydı örneğin, iki farklı sınıflar gibi Configuration adı:

class Configuration; // class 1, in global namespace
namespace MyApp
{
    class Configuration; // class 2, different from class 1
    function blah()
    {
        // resolves to MyApp::Configuration, class 2
        Configuration::doStuff(...) 
        // resolves to top-level Configuration, class 1
        ::Configuration::doStuff(...)
    }
}

Temelde, senin adın başka bir ad, bu durumda MyApp içinde yeni bir tanım sorunlu olabilir bu yana Genel ad için çapraz geçiş yapmak için size izin verir.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Bart Baker

    Bart Baker

    1 Aralık 2006
  • FND Films

    FND Films

    2 Mayıs 2006
  • FUzzyBUnnyBOoties

    FUzzyBUnnyBO

    3 EKİM 2007