Tôi đã thấy tiêu đề bao gồm kiểu như thế này, trong đó tệp tiêu đề không bao gồm các tệp tiêu đề khác và tệp * .cpp tương ứng phải bao gồm tất cả các phụ thuộc (và bao gồm chúng theo thứ tự đúng). Dường như có thể là trong những ngày tốt đẹp cũ mà điều này sẽ làm cho việc xây dựng phụ thuộc theo dõi dễ dàng hơn (nhưng tôi chỉ đoán). Có một lý do tốt cho nó ngày nay?Bất kỳ lý do nào tốt cho tệp tiêu đề C++ không bao gồm bất kỳ tệp tiêu đề nào khác?
File "Bh":
#ifndef _B_h_
#define _B_h_
// Note we do not #include "A.h" that contains class A declaration.
class B
{
public:
A a; // An A object.
};
#endif // _B_h_
File "B.cpp":
#include "A.h" // Must include this before B.h, otherwise class A not defined in B.h
#include "B.h"
...
Bạn có thể chỉnh sửa tiêu đề câu hỏi của riêng mình nếu bạn muốn nó có tên như vậy. –
Tôi nghi ngờ rằng bạn đã nhìn thấy * rằng * ví dụ trong cuộc sống thực, vì nó không biên dịch. Bạn phải có quyền truy cập vào loại hoàn chỉnh của từng đối tượng thành viên. –
Mong muốn được cấp. :) –