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

  • Jonathan Morrison

    Jonathan Mor

    24 Mart 2010
  • superflyy88

    superflyy88

    8 ŞUBAT 2009
  • thewinekone

    thewinekone

    17 Aralık 2005