C++学习知识点整理之类和对象基础篇

                                                                     C++学习初级知识点整理之类和对象基础篇

 

1.如何定义类?

    class Tv

    {

        public:

          void change_vol();

          void power();

        //private:

          int type;

          char name[20];

    }

  2.对象的实例化

    定义:即在IDE中由一个类生成多个对象的过程。

 

    格式:类名 对象名;

      例:Tv s;

 

    两种方法:

     ps:栈空间:保存局部变量、自动变量、函数形参。

               特点是先进先出,由系统管理内存。

       堆空间:由malloc、new,等空间分配函数申请的空间

               特点是先进后出、由用户管理(释放)

  

  a.从栈中实例化对象:                b.从堆中实例化对象:

      int main()                                   int main()

      {                                                 {

        Tv tv;                                               Tv *p = new tv;  //从堆中申请内存,用完释放

        Tv tv[20];                                        Tv *q = new tv[20];

        ......                                                   ......

        return 0;  //栈空间由系统释放     delelte p;  //释放指针所指向内存空间

      }                                                       delete []q;

                                                              p = NULL; // 将指针指向空

                                                              q = NULL;

                                                               return 0;

                                                             }

3.对象成员的访问

  a.对栈中的对象成员访问  

    int main()

    {Tv tv;

       tv.type = 0;

       tv.change_vol();

       return 0;

    }

b.对堆中的对象进行访问

 单个对象:                                                             对象数组:

  int main(void)                                                        int main(void)

  {                                                                            {

     Tv *p = new tv; // new 分配空间                          Tv *p = new tv[5];

    p->type = 0;                                                            for (int i = 0; i < 5; i++)

    p->change_vol();                                                    {

    delete p; //使用完毕,释放内存                                p[i]->type = 0;

    p = NULL; //将指针P指向空                                     p[i]->change_vol();

    return 0;                                                                   }

  }                                                                                  delete []p;

                                                                                      p = NULL;

                                                                                      return 0;

                                                                                      }

 

关于类在内存中的储存:类在定义时,并不会在堆或者栈中分配内存空间,只有在它实例化一个对象时,对象的成员变量会在栈上分配内存空间,成员函数还是在代码段。当同一个实例化多个对象时,每个对象的成员变量会在栈上分配不同的内存空间,但是多个对象通过对应的接口公用一个代码段的成员函数。

你可能感兴趣的:(C/C++,C++语言)