Closed tnie closed 6 years ago
class _ADD_API Student
{
public:
class Date
{
public:
int year();
int month();
int _ADD_API day();
private:
long _date;
};
/*Student();
~Student();*/
inline int age();
bool sex();
/*_ADD_API*/ void change(std::string name);
private:
int m_age;
bool m_sex;
std::string m_name;
void do_nothing()
{
// inline
}
};
导出类时,私有成员函数、未显式定义的拷贝控制函数、在类定义头文件中给出了定义的函数(默认内联)也会被导出:但是,前者用户用不到,后两者无需导出用户也能看到。
所以,并不推荐导出整个类。虽然代码貌似简洁了,但会导出乱七八糟的好多内容。
因为使用的编译器自动生成的构造与析构,所以肯定是无法显式导出函数的。
经过查看,发现也并未隐式导出。所以推测,类似是在头文件中直接 内联定义 了构造与析构,故 exe 主项目能够直接看到拷贝控制函数。