Có cách nào để gọi phương thức thành viên lớp không tĩnh từ phương thức khác được chứa trong lớp chính trong C++ không? Nếu có, mã sẽ trông như thế nào?Gọi phương thức thành viên không tĩnh từ phương thức khác
Vấn đề là, tôi không thể khai báo phương thức specfic này là tĩnh, vì nó sử dụng các phương thức khác trong cùng một lớp mà sau đó không hoạt động nếu tôi làm cho phương thức tĩnh.
Tôi đang cố gắng để sử dụng:
MyClass::myClassMethod();
từ một phương pháp trong lớp học chính, nhưng nó mang lại cho tôi những lỗi: một tổ chức phi tham khảo thành viên tĩnh phải liên quan đến một đối tượng cụ thể.
Để làm rõ, myClassMethod() sử dụng các phương pháp khác trong MyClass như:
void myClassMethod() {
...
anotherClassMethod();
}
vì vậy nếu tôi được làm myClassMethod tĩnh nó sẽ gây trở ngại cho gọi anotherClassMethod().
Sau khi đọc câu hỏi và nhận xét trong các câu trả lời đã đăng, sẽ hữu ích nếu bạn có thêm thông tin về những gì bạn đang cố gắng làm. Bản thân 'myClassMethod' có tĩnh không? Nó được gọi từ đâu? Bạn có thể thay đổi các đối số cho phương pháp này không? Mục tiêu của vấn đề bạn đã được chỉ định là gì? – tmpearce
Có vẻ như bạn thực sự cần phải suy nghĩ về hành vi nào bạn có thể muốn ở đây. Sự khác biệt chính với các phương thức tĩnh và không tĩnh là sau này cần truy cập dữ liệu lớp hoặc có thể thực hiện các cuộc gọi ảo trong đó thực hiện nhiều thao tác giống nhau. Nếu 'myClassMethod' gọi' anotherClassMethod' là không tĩnh, bạn có cần phải làm điều này không? Nếu không, làm cho chúng tĩnh. Nếu có, thì bạn mong đợi điều gì sẽ xảy ra khi phương pháp tìm cách truy cập dữ liệu? – Keith