#include <stdio.h> #include <string.h> class CBuffer { char *m_pBuffer; int m_size; public: CBuffer(){m_pBuffer=NULL;} ~CBuffer(){Free();} void Allocate(int size){m_size=size;m_pBuffer=new char[size];} void Free() { if(m_pBuffer!=NULL){delete m_pBuffer;m_pBuffer=NULL;} } void SaveString(const char *pText){Allocate(strlen(pText)+1);strcpy(m_pBuffer,pText);} char *GetBuffer() const{return m_pBuffer;} }; int main(){ CBuffer buffer1; buffer1.SaveString("Microsoft"); printf(buffer1.GetBuffer()); return 1; } 1.const成员函数保证不会修改数据成员; 2.malloc之前必须分配内存,且要在之前的strlen上加1.如:Allocate(strlen(pText)+1)