Tôi đang cố gắng tăng tốc độ thường trình bằng cách viết nó bằng C++, sau đó sử dụng nó bằng cách sử dụng ctypes hoặc cython.Có thể một lớp C++ bao gồm chính nó như là một thành viên?
Tôi là người mới sử dụng C++. Tôi đang sử dụng Microsoft Visual C++ Express vì nó hoàn toàn miễn phí.
Tôi dự định triển khai cây biểu thức và phương pháp để đánh giá nó theo thứ tự postfix.
Vấn đề tôi gặp phải ngay lập tức là:
class Node {
char *cargo;
Node left;
Node right;
};
Tôi không thể tuyên bố left
hoặc right
như Node
loại.
Tài liệu tham khảo không thực sự hoạt động trong trường hợp này vì chúng không được phép rỗng và bạn cần kết thúc null hoặc biểu đồ sẽ là vô hạn. – Blindy
Bạn có thể tạo một nút giả để có tốc độ NULL. Tuy nhiên, điều này không hoạt động tốt vì các tham chiếu không thể được gán lại cho một thứ khác, và sửa đổi thành bất kỳ liên kết nào sẽ yêu cầu xây dựng lại tất cả các nút đến gốc. – Potatoswatter
@Blindy: Bạn cũng có thể đặt tham chiếu nút thành '* this' thay cho NULL. – MSalters