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;
    }
  • 相关阅读:
    Dynamics CRM 请求服务时报access is denied错误
    (转载)表服务器无法打开与报表服务器数据库的连接。所有请求和处理都要求与数据库建立连接。
    如何将sqlserver的windows验证模式改为SQL Server 和 Windows 混合身份验证模式
    (转载)SQL Server2008附加数据库之后显示为只读时解决方法
    CRM导入组织报实例名称必须与计算机名称相同的问题
    The ENU localization is not supported by this SQL Server media
    js验证input输入框(字母,数字,符号,中文)
    Microsoft Dynamics CRM 2011 JS操作集锦
    一入python深似海--class
    TLB的作用及工作过程
  • 原文地址:https://www.cnblogs.com/chuijingjing/p/9245445.html
Copyright © 2011-2022 走看看