C++ 实例化对象

匿名 (未验证) 提交于 2019-12-03 00:39:02

一、从栈实例化对象

我们首先定义一个类,类的名字叫TV,里面包括两个成员变量,两个成员函数。

class TV // 定义一个电视的类TV { public:     char name[20]; // 定义类的属性,一个数组     int type;      void changeVol(); // 定义成员函数     void power(); }

下面开始从栈中实例化对象

如果定义一个对象,我们就在类TV后面写一个对象tv;

如果定义一个对象的数组,我们就在类TV后面写数组对象 tv[20] ,20是数组需要的元素。

int main(void) {     TV tv;        // 定义一个对象     TV tv[20];    // 定义一个对象数组      return 0; }

示例:

#include <iostream> #include <stdlib.h> using namespace std;  class Coordinate  // 定义一个类Coordinate(坐标) { public:  // 访问限定符     int x;// 定义一个成员变量 x (坐标x)     int y;// 定义一个成员函数 y (坐标y)      void printX()//定义一个成员函数 printX(),函数的作用是输出 x 的值     {         cout << x << endl;     }      void printY()//定义一个成员函数 printY(),函数的作用是输出 y 的值     {          cout << y << endl;     } };  int main(void) {     // 用栈的方式实例化类      Coordinate coor; // coor是定义在栈中的一个实例化的对象      coor.x = 10;  // 访问数据成员,给成员变量 x 赋值     coor.y = 20;     coor.printX();// 调用成员函数     coor.printY(); }

二、从堆中实例化对象

我们首先还是定义一个类,类的名字叫TV,里面包括两个成员变量,两个成员函数。

class TV // 定义一个电视的类TV { public:     char name[20]; // 定义类的属性,一个数组     int type;      void changeVol(); // 定义成员函数     void power(); }

下面开始从栈中实例化对象

在堆中实例化对象的时候,我们要首先申请一块内存,把这块内存给实例化的对象或者对象的组;

在使用完后,我们要将内存释放掉。

int main(void) {     TV *p = new TV(); // 在堆中申请一个对象     TV *q = new TV[20]; // 在堆中申请一个数组对象,20个变量      delete p;    // 释放一个对象的内存     delete []q; // 释放一个数组的内存      return 0; }

示例:

#include <iostream> #include <stdlib.h> using namespace std;  class Coordinate  // 定义一个类Coordinate(坐标) { public:  // 访问限定符     int x;// 定义一个成员变量 x (坐标x)     int y;// 定义一个成员函数 y (坐标y)      void printX()//定义一个成员函数 printX(),函数的作用是输出 x 的值     {         cout << x << endl;     }      void printY()//定义一个成员函数 printY(),函数的作用是输出 y 的值     {          cout << y << endl;     } };  int main(void) {     // 用堆的方式实例化类      Coordinate *p = new Coordinate();     p->x = 100; // 用指针的形式给x赋值     p->y = 200;     p->printX(); // 用指针的形式调用函数     p->printY();      system("pause");     return 0; }

原文:https://www.cnblogs.com/chuijingjing/p/9245445.html

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!