Trong khi đọc một bài báo, tôi đi qua các cú pháp sau:Làm thế nào một lớp kế thừa từ một mẫu dựa trên chính nó?
template <typename T>
class MyTemplate
{
T* member;
T* method();
// ...
}
class MyClass : public MyTemplate<MyClass>
{
// ...
}
Tôi không hiểu chính xác như thế nào MyClass
có thể kế thừa từ một mẫu được dựa trên chính nó. Bạn có thể vui lòng giải thích cách thức hoạt động này?
Tôi sẽ không nói rằng 'MyClass' chưa hoàn thành. Nó có thể là trường hợp mà bạn muốn một số chức năng chung được cung cấp cho lớp này. Ví dụ [Ví dụ] (http://drdobbs.com/cpp/184403484). –
@ R.K tại thời điểm 'công khai MyTemplate', 'MyClass' thực sự là một loại không đầy đủ. Nó có nghĩa là bạn có thể lưu trữ con trỏ và tài liệu tham khảo, vv –
Có, bạn đã đúng. Bây giờ tôi đã đọc lại mô tả của bạn, nó là chính xác. Tôi nghĩ bạn có nghĩa là MyClass là, ví dụ, một loại không đầy đủ. –