博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

C++ - 关于类的成员函数的问题

Posted on 2012-09-25 19:08  神の大司命  阅读(190)  评论(0)    收藏  举报

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 }