西农大 C plus

问题 E: oop实习-5.类的定义_深拷贝

题目描述

设计并实现一个动态整型数组类Vect,要求:

(1)实现构造函数重载,可以根据指定的元素个数动态创建初始值为0的整型数组,或根据指定的内置整型数组动态创建整型数组。

(2)设计拷贝构造函数和析构函数,注意使用深拷贝。

(3)设计存取指定位置的数组元素的公有成员函数,并进行下标越界,若越界则输出“out of boundary”。

(4)设计获取数组元素个数的公有成员函数。

(5)设计用于输出数组元素的公有成员函数,元素之间以空格分隔,最后以换行符结束。

 

在main函数中按以下顺序操作:

(1)根据内置的静态整型数组{1,2,3,4,5}构造数组对象v1,根据输入的整型数构造数组对象v2。

(2)调用Vect的成员函数依次输出v1和v2的所有元素。

(3)输入指定的下标及对应的整型数,设置数组对象v1的指定元素。

(4)根据数组对象v1拷贝构造数组对象v3。

(5)调用Vect的成员函数依次输出v1和v3的所有元素。

输入

用于构建数组对象v2的元素个数

用于设置数组对象v1的指定下标及元素值

输出

数组对象v1和v2的所有元素

数组对象v1和v3的所有元素

样例输入

10 6 6

样例输出

1 2 3 4 5 0 0 0 0 0 0 0 0 0 0 out of boundary 1 2 3 4 5 1 2 3 4 5

提示

#include <iostream> 
using namespace std; 
  
class Vect 
{ 
    int n; 
    int *arr;  
    public: 
        ~Vect() 
        { 
            delete [] arr; 
        } 
        Vect ()
        { 
        	n = 5;
        	arr = new int[n];
            for (int i = 0; i < 5; i++) 
            { 
                
                arr[i] = (i+1); 
            } 
              
        } 
        Vect(int _n) : n(_n) 
        { 
        	arr = new int[n];
            for (int i = 0; i < n; i++) 
            { 
                arr[i] = 0; 
            }  
        } 
        Vect(const Vect &s) : n(s.n) 
        { 
        	arr = new int[n];
             for (int i = 0; i< n; i++) 
             { 
                arr[i] = s.arr[i];   
             }   
        } 
        void Quyuansu (int a,int b) 
        { 
            if (a>= this -> n) 
            { 
                cout << "out of boundary" << endl; 
            } 
            else
            { 
                this -> arr[a] = b; 
            } 
        } 
        int Qusize() 
        { 
            return this -> n; 
        } 
        void Print() 
        { 
        	int i = 0;
            for (i = 0; i < n-1; i++) 
            { 
                cout << arr[i] << " "; 
            } 
            cout << arr[n-1];
            
            cout << endl; 
        } 
 } ; 
  
int main() 
{ 

    Vect v1; 
    int n = 0; 
    cin >> n; 
    int n2 ,n3; 
    cin >> n2; 
    cin >> n3; 
    Vect v2(n); 
    v1.Print(); 
    v2.Print(); 
    v1.Quyuansu(n2,n3); 
   
    Vect v3(v1); 
    v1.Print(); 
    v3.Print(); 
    //int b;
    //cin >> b;
      
    return 0;  
} 

  • 10
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
设计实现一个动态整型数组Vect要求: (1)实现构造函数重载,可以根据指定素个数动态创建初始值为0的整型数组,或根据指定的内置整型数组动态创建整型数组。 (2)设计拷贝构造函数和析构函数,注意使用深拷贝。 (3)设计存取指定位置的数组素的公有成员函数,并进行下标越界,若越界则输出“out of boundary”。 (4)设计获取数组素个数的公有成员函数。 (5)设计用于输出数组素的公有成员函数,素之间以空格分隔,最后以换行符结束。 在main函数中按以下顺序操作: (1)根据内置的静态整型数组{1,2,3,4,5}构造数组对象v1,根据输入的整型数构造数组对象v2。 (2)调用Vect的成员函数依次输出v1和v2的所有素。 (3)输入指定的下标及对应的整型数,设置数组对象v1的指定素。 (4)根据数组对象v1拷贝构造数组对象v3。 (5)调用Vect的成员函数依次输出v1和v3的所有素。 设计实现一个动态整型数组Vect要求: (1)实现构造函数重载,可以根据指定素个数动态创建初始值为0的整型数组,或根据指定的内置整型数组动态创建整型数组。 (2)设计拷贝构造函数和析构函数,注意使用深拷贝。 (3)设计存取指定位置的数组素的公有成员函数,并进行下标越界,若越界则输出“out of boundary”。 (4)设计获取数组素个数的公有成员函数。 (5)设计用于输出数组素的公有成员函数,素之间以空格分隔,最后以换行符结束。 在main函数中按以下顺序操作: (1)根据内置的静态整型数组{1,2,3,4,5}构造数组对象v1,根据输入的整型数构造数组对象v2。 (2)调用Vect的成员函数依次输出v1和v2的所有素。 (3)输入指定的下标及对应的整型数,设置数组对象v1的指定素。 (4)根据数组对象v1拷贝构造数组对象v3。 (5)调用Vect的成员函数依次输出v1和v3的所有素。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值