Một incomplete type
lỗi là khi trình biên dịch gặp phải việc sử dụng một mã định danh mà nó biết là một kiểu, chẳng hạn vì nó đã thấy một khai báo chuyển tiếp của nó (ví dụ class stringstream;
), nhưng nó chưa thấy định nghĩa đầy đủ cho nó ( class stringstream { ... };
).
Điều này có thể xảy ra đối với một loại mà bạn chưa sử dụng trong mã của riêng mình nhưng chỉ hiển thị thông qua các tệp tiêu đề được bao gồm - khi bạn đã bao gồm các tệp tiêu đề sử dụng loại, nhưng không phải tệp tiêu đề nơi loại được xác định. Thật bất thường khi một tiêu đề không tự nó bao gồm tất cả các tiêu đề mà nó cần, nhưng không phải là không thể.
Đối với những thứ từ thư viện chuẩn, chẳng hạn như stringstream
lớp, hãy sử dụng chuẩn ngôn ngữ hoặc tài liệu tham khảo khác cho lớp hoặc các chức năng riêng lẻ (ví dụ: các man
trang Unix , thư viện MSDN, v.v.) để tìm ra những gì bạn cần #include
sử dụng và những gì không gian tên để tìm nó trong nếu có. Bạn có thể cần phải tìm kiếm các trang mà tên lớp xuất hiện (ví dụ man -k stringstream
).