1. 如果声明普通成员函数,但不定义,不会有错误,如下例:
1 class A 2 { 3 public: 4 void fun(); 5 protected: 6 private: 7 }; 8 9 int main() 10 { 11 A a; 12 13 return 0; 14 }
2. 如果声明成员函数为虚函数,但不定义,编译出错,提示无法解析符号,如下例:
1 class A 2 { 3 public: 4 virtual void fun(); 5 protected: 6 private: 7 }; 8 9 // error LNK2001: 无法解析的外部符号 "public: virtual void __thiscall A::fun(void)" (?fun@A@@UAEXXZ) 10 int main() 11 { 12 A a; // 注意:如果将此行注释掉,错误将消除 13 14 return 0; 15 }
浙公网安备 33010602011771号