2011-10-26 25 views
5
//foo.h 
class Foo 
    { 
    private: 
     static int number; 

    public: 
     static int bar(); 
    }; 

//foo.cc 
#include "foo.h" 

int Foo::bar() 
{ 
    return Foo::number; 
} 

tính năng này không hoạt động. Tôi muốn định nghĩa một hàm tĩnh bên ngoài định nghĩa lớp và truy cập một giá trị tĩnh.xác định hàm tĩnh bên ngoài lớp và truy cập giá trị tĩnh .h và .cc tệp

undefined reference to `Foo::number' 
+0

Giá trị tĩnh không bao giờ được xác định. Thêm 'int Foo :: number;' trong foo.cc –

Trả lời

1

Bạn đã khai báo Foo :: số bạn phải thêm định nghĩa. Trong tệp cpp của bạn Thêm dòng này

int Foo::number = 0; 
2

bạn phải xác định Foo::number:

// foo.cc 
... 
int Foo::number(0); 
Các vấn đề liên quan