C++ มีส่วนที่ไม่เข้าใจ รบกวนด้วยครับ

กระทู้คำถาม
#include <stdio.h>
#include <conio.h>

class CFile
{
   FILE *fp;
   char buffer[256];
public:
   CFile (char fname[256]
   {
      fp=fopen (fname,"rt");
   }
   int NotEnd()
   {
      if( !feof(fp))
      {
         fgets(buffer,256,fp);
         return 1;
      }
      else
      {
         return 0;
      }
   }
   char *Getstring()      //ไม่เข้าใจส่วนนี้ครับ buffer ไม่ได้เป็น pointer ทำไมต้องให้ฟังชั่นประกาศเป็นpointer ด้วยครับ
   {                            // รบกวนขอคำจำกัดความที่จะอธิบายจุดนี้ให้หน่อยได้มั้ยครับ ไปต่อไม่ได้จริงๆ
      return buffer;      // ขอขอบคุณล่วงหน้านะครับ
   }
   ~CFile()
   {
      fclose(fp);
   }
};

void mani()
{
   CFile f1("data.txt"), f2("info.txt");
   while(f1.NotEnd())
   {
      printf("%s",f1.GetString());
   }
while(f2.NotEnd())
   {
      printf("%s",f2.GetString());
   }
   getch();
}
โปรดศึกษาและยอมรับนโยบายข้อมูลส่วนบุคคลก่อนเริ่มใช้งาน อ่านเพิ่มเติมได้ที่นี่