error C2248 cannot access private member declared in class解决思路

error C2248 cannot access private member declared in class
编译器-VC8
   
class   CMultiString  
    {
      private:
       
      int   ElementsCount;          
      int   GroupSize;                        
      TCHAR   **   p;                                
      TCHAR   *temp;
        CMultiString();     //构造函数声明
      ~CMultiString();     //析购函数声明


    };//end   class

                                                                                                                                                     
    inline   CMultiString::CMultiString()
    {
   
      ElementsCount=0;          
      p=NULL;                                
      temp=NULL;

      GroupSize=512   *   sizeof(TCHAR   *   );
      p=(TCHAR   **   )malloc(GroupSize);  
   
    }

                                                                                                                                                        inline   CMultiString::~CMultiString()
    {

      for(int   i=0;i <ElementsCount;++i)
      {
        free(   (TCHAR   *)   *(p+i)   );
     
      }
     
      free(   p   );
    }

编译出现两个错误:
错误error   C2248:   'CMultiString::CMultiString '   :   cannot   access   private   member   declared   in   class   'CMultiString '

错误error   C2248:   'CMultiString::~CMultiString '   :   cannot   access   private   member   declared   in   class   'CMultiString '

我试着把构造、析构函数声明放入公有成员,编译通过。可我记得书上说构造、析构函数可以放入私有成员中的,不知为什么会出错,晕...


------解决方案--------------------
构造函数要public
------解决方案--------------------
class CMultiString
{
private: