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

  • Day9TV

    Day9TV

    22 NİSAN 2010
  • ICON

    ICON

    19 EKİM 2011
  • thegeniuses.tv

    thegeniuses.

    11 Aralık 2006