一、从栈实例化对象
我们首先定义一个类,类的名字叫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; }