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

  • Bennythecoder

    Bennythecode

    25 Mart 2008
  • Kanaal van Dj0fifty

    Kanaal van D

    28 EKİM 2011
  • ethr95awd

    ethr95awd

    8 Kasım 2006