一, 从栈实例化对象
我们首先定义一个类, 类的名字叫 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;
- }
来源: http://www.bubuko.com/infodetail-2664772.html