zoukankan      html  css  js  c++  java
  • C++-------类成员数组

    //MyArray.h
    #pragma once
    #include <iostream>
    using namespace std;
    class MyArray
    {
    public:
        MyArray();
        MyArray(int len);                   //创建一个len长度的数组
        MyArray(const MyArray &another);    //数据成员含有指针,需要进行深拷贝
        ~MyArray();
        void setData(int index, int data);  //数组赋值函数
        int getData(int index);             //数组输出值函数
        int getLen();                       //获取数组长度
    private:
        int len;
        int *space;                        
    };
    //MyArray.cpp
    #include "MyArray.h"
    MyArray::MyArray()
    {
        cout << "MyArray()..." << endl;
        this->len = 0;
        this->space = NULL;
    }
    
    MyArray::MyArray(int len)
    {
        if (len <= 0)
        {
            this->len = 0;
            return;
        }
        else
        {
            this->len = len;
            this->space = new int[this->len];
            cout << "MyArray::MyArray(int len)..." << endl;
        }
    }
    
    MyArray::~MyArray()
    {
        if (this->space != NULL)
        {
            delete[]this->space;
            this->space = NULL;
            len = 0;
            cout << "MyArray::~MyArray()..." << endl;
        }
    }
    
    void MyArray::setData(int index, int data)
    {
        if (this->space != NULL)
        {
            this->space[index] = data;
        }
    }
    
    int MyArray::getData(int index)
    {
        return this->space[index];
    }
    
    int MyArray::getLen()
    {
        return this->len;
    }
    
    MyArray::MyArray(const MyArray &another)
    {
        if (another.len >= 0) {
            this->len = another.len;
            //深拷贝
            this->space = new int[this->len];
            for (int i = 0 ; i < this->len; i++)
            {
                this->space[i] = another.space[i];
            }
            cout << "MyArray::MyArray(const MyArray &another)..." << endl;
        }
    }
    //main.cpp
    #include <iostream>
    #include "MyArray.h"
    using namespace std;
    int main()
    {  
        MyArray array1(10);//开辟10个元素的数组
        //赋值操作
        for (int i = 0; i < 10; i++)
        {
            array1.setData(i, i + 10);
        }
        cout << "---------------" << endl;
        cout << "array1" << endl;
        for (int i = 0; i < 10; i++)
        {
            cout << array1.getData(i) << " ";
        }
        cout << endl;
        MyArray array2 = array1;
        cout << "array2" << endl;
        for (int i = 0; i < array2.getLen(); i++)
        {
            cout << array2.getData(i) << " ";
        }
        cout << endl;
        system("pause");
        return 0;
    }
  • 相关阅读:
    96. Unique Binary Search Trees
    515. Find Largest Value in Each Tree Row
    网络中数据传输的过程
    ARP/RARP协议
    JAVA静态代码块的作用及执行顺序
    MySQL中大于等于小于等于的写法
    Mybatis常见面试题总结及答案
    安全框架Shiro和Spring Security比较
    Excel VBA 连接各种数据库(一) VBA连接MySQL数据库
    Servlet、Servlet容器等内容讲解
  • 原文地址:https://www.cnblogs.com/god-for-speed/p/10936653.html
Copyright © 2011-2022 走看看