Tôi có một lớp như ::chức năng tĩnh gọi phi tĩnh trong C++
Class Test
{
public:
void Check(){//dosomething};
static void call(){//I want to call check()};
};
Bởi vì cuộc gọi() là một thành viên tĩnh, vì vậy nó không thể gọi chức năng không tĩnh, vì vậy tôi nghĩ rằng để sử dụng Kiểm tra() trong cuộc gọi() là để tạo ra thử nghiệm con trỏ và sau đó điểm đến Kiểm tra(), nhưng tôi nghĩ rằng nó không phải là tốt, là có một cách tốt hơn để làm điều này? Tôi có thể viết lại tất cả mọi thứ trong hàm tĩnh, vì vậy tôi không cần gọi lại Check(), nhưng những gì tôi muốn là sử dụng lại mã trong Check() và tránh lặp lại mã.
Không rõ bạn đang cố gắng làm gì.Bạn có thể tìm ra hàng triệu cách để hack xung quanh nó bằng ngôn ngữ, nhưng cuối cùng lý do bạn ở trong tình huống này là yêu cầu của bạn không có ý nghĩa gì cả. Không có ngữ cảnh đối tượng trong 'cuộc gọi'. Tại sao bạn nghĩ rằng bạn cần phải làm điều này? –
Tại sao không khai báo 'Kiểm tra 'một hàm tĩnh? –
Bạn cần một cá thể 'kiểm tra lớp' để gọi bất kỳ hàm không tĩnh nào (tức là con trỏ 'this'). – mark