class string;         // "概念上" 提前声明string 类型
                      // 详见条款49class Date;           // 提前声明
class Address;        // 提前声明
class Country;        // 提前声明class Person {
public:
  Person(const string& name, const Date& birthday,
         const Address& addr, const Country& country);
  virtual ~Person();  ...                      // 拷贝构造函数, operator=  string name() const;
  string birthDate() const;
  string address() const;
  string nationality() const;
};这个例子是为了降低文件间的编译依赖降低而使用向前申明的方法,但编译时还是提示需要string,date,等类的定义