#ifndef EMPLOYEE_H #define EMPLOYEE_H #include class QString; // Demo from https://doc.qt.io/qt-6/qshareddatapointer.html class EmployeeData; class Employee { public: Employee(); Employee(int id, const QString& name); virtual ~Employee(); // Qt文档:若EmployeeData所有成员已经在本头文件中声明, // 则无需实现拷贝构造函数和赋值构造函数 // 本例子由于隐藏了EmployeeData的实现,故要手动实现 Employee(const Employee& other); Employee& operator=(const Employee&); void setId(int id); void setName(const QString& name); int id() const; QString name() const; private: QSharedDataPointer d; }; #endif // EMPLOYEE_H