吹静静

欢迎QQ交流:592590682

一、从栈实例化对象

我们首先定义一个类,类的名字叫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;
}

 

posted on 2018-06-29 23:31  吹静静  阅读(920)  评论(0编辑  收藏  举报