SORU
7 Kasım 2008, Cuma


::push_back vector) kullanır değeri, statik bir sınıf üyesi için başvurusu geçersiz neden

Herkes aşağıdaki kodu derlemek için neden açıklayabilir mi? En azından g 4.2.4.

Ve int için ÜYE ben atınca derleme, neden daha ilginç?

#include <vector>

class Foo {  
public:  
    static const int MEMBER = 1;  
};

int main(){  
    vector<int> v;  
    v.push_back( Foo::MEMBER );       // undefined reference to `Foo::MEMBER'
    v.push_back( (int) Foo::MEMBER ); // OK  
    return 0;
}

CEVAP
7 Kasım 2008, Cuma


Aslında statik üyeyi bir yere (sınıf tanımından sonra) tanımlamak gerekir. Bunu deneyin:

class Foo { /* ... */ };

const int Foo::MEMBER;

int main() { /* ... */ }

Bu tanımsız başvuru kurtulmak gerekir.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Artorius FullPower

    Artorius Ful

    29 Temmuz 2007
  • SDSARG3

    SDSARG3

    14 Mart 2009
  • The Weavers of Eternity Paracord Tutorials

    The Weavers

    1 Ocak 2014