zoukankan      html  css  js  c++  java
  • C++ 实例化对象 p->printX()

    一、从栈实例化对象

    我们首先定义一个类,类的名字叫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;
    }
  • 相关阅读:
    windows mobile licence
    通过acme.sh生成泛域名证书
    枚举值为何为1、2、4、8、16....
    script 解决 跨域访问
    强大的json字符串对象,转化为object对象
    使用maven jetty调试web程序
    web上实现起点到终点的抛物线轨迹运动——补充
    实现2个有序数组的排序
    maven axis2简单部署webservice
    使用javamail发送邮件
  • 原文地址:https://www.cnblogs.com/chuijingjing/p/9245445.html
Copyright © 2011-2022 走看看