C++类的封装_工程

时间:2023-03-09 16:22:40
C++类的封装_工程

一个C++工程C++类的封装_工程

main.cpp

#include<stdio.h>

#include"Array.h"

int main()
{
     Array a1(10);

for(int i=0;i<a1.length();i++)
    {
       a1.setdata(i,i);
     }

for (int j=0; j<a1.length(); j++)
    {
       printf("Element %d : %d \n ",j,a1.getdata(j));
    }

a1.destroy();
     printf("press any key to continue...");
     getchar();
     return 0;

}

Array.h

#ifndef _Array_H_
#define _Array_H_

class Array
  { 
      private:
      int mlength;
      int* mspace;
      public:
           Array(int length);              //构造函数
           Array(const Array& obj);   //构造函数(实现复制功能)
           int length();
           void setdata(int index, int value);
           int getdata(int index);
           ~Array();
};

#endif

Array.cpp

#include "Array.h"
       Array::Array(int length)

{
      if(length<0)
      {
         length=0;
       }
       mlength=length;
       mspace=new int[mlength];
     }
       Array::Array(const Array& obj)
      {
         mlength=obj.mlength;
         mspace=new int(mlength);
         for(int i=0; i<mlength;i++)
           {
             mspace[i]=obj.mspace[i];
           }

}

int Array::length()
          {
           return mlength;
          }

void Array::setdata(int index, int value)
            {
               mspace[index]=value;
             }

int Array::getdata(int index)
            {
              return mspace[index];
             }

              Array::~Array()                ///析构函数  销毁对象前  释放内存 自动调用

                {
                  mlength=-1;
                   delete[] mspace;
               }