类内定义与类外定义
1、类内定义与内敛函数(inline)
定义一个类的时候,将成员函数的函数体写在类的内部,这种定义方式就称为类内定义。如下所示:
1 class Cstudent { 2 public: 3 void SetName(std::string name) { this->m_strName = name; } 4 void SetScore(unsigned int score) { this->m_iScore = score; } 5 void SetGender(std::string gender) { this->m_strGender = gender; } 6 7 std::string GetName(void) { return this->m_strName; } 8 std::string GetGender(void) { return this->m_strGender; } 9 unsigned int GetScore(void) { return this->m_iScore; } 10 private: 11 std::string m_strName; 12 std::string m_strGender; 13 unsigned int m_iScore; 14 };
对于类内定义的函数,编译器会优先将其编译为内敛函数(inline),但不是一定将其以内敛的方式进行编译。
如果函数本身过于复杂,那么编译器最终是不会这样做的。
2、类外定义
类外定义,顾名思义就是将成员函数的函数体写在类的外部,这种方式就没有什么特别之处了。