Tôi đang cố gắng để hiểu tại sao sau đây là một lỗi:Member chức năng với liên kết tĩnh
class Foobar {
public:
static void do_something();
};
static void Foobar::do_something() {} // Error!
int main() {
Foobar::do_something();
}
lỗi này với "lỗi: không thể khai báo hàm thành viên 'static void Foobar :: do_something()' để có liên kết tĩnh "trong g + +, và" lỗi: 'tĩnh' chỉ có thể được xác định bên trong định nghĩa lớp "trong clang ++.
Tôi hiểu rằng cách khắc phục điều này là xóa "tĩnh" trong định nghĩa của do_something trên dòng 6. Tôi không hiểu, tại sao đây lại là vấn đề. Đó có phải là một lý do trần tục, chẳng hạn như "ngữ pháp C++ ra lệnh", hay là một cái gì đó phức tạp hơn đang xảy ra?
Có thể trùng lặp với [Lỗi chức năng thành viên tĩnh; Cách viết đúng chữ ký?] (Https://stackoverflow.com/questions/8130066/static-member-functions-error-how-to-properly-write-the-signature) –