Expérience C ++ --- la première expérience de la classe (V)

La première expérience de la classe (V)

La description
définit une classe Data avec un seul attribut de type int et les méthodes suivantes:

Le constructeur par défaut, initialise la propriété à 0 et affiche "Constructeur par défaut des données".

Destructeur, sortie: "Les données # sont effacées.", Où "#" est la valeur de l'attribut.

int getValue () - Récupère la valeur de l'attribut.

void setValue (int) —— Définit la valeur d'attribut.

Définissez une classe de tableau DataArray composée d'objets Data. Cette classe comprend un attribut de type int et un attribut de type Data *, qui correspondent au nombre d'éléments et à tous les éléments du tableau. Définissez la méthode suivante:

Constructeur-Veuillez vous référer à la méthode d'appel de la fonction principale pour le format du paramètre, sortie: "DataArray's constructor.".

int getSum () - Trouvez la somme des valeurs d'attribut de tous les objets Data.

Destructor-sortie une ligne de "déconstructeur de DataArray.".
Saisissez
plusieurs entiers. Le nombre est supérieur à 2.

Le premier N représente le nombre d'éléments à saisir ultérieurement. Il y a N entiers après cela. Ils sont utilisés pour définir la valeur de l'élément de tableau des données de l'objet DataArray dans la fonction principale.

Le dernier entier est utilisé pour définir la valeur de l'objet pointé par testP dans la fonction principale.

Sortie
voir exemple ~
Exemple d'entrée

10 1 2 3 4 5 6 7 8 9 10 1222

Exemple de sortie

Data’s default constructor.
Data’s default constructor.
Data’s default constructor.
Data’s default constructor.
Data’s default constructor.
Data’s default constructor.
Data’s default constructor.
Data’s default constructor.
Data’s default constructor.
Data’s default constructor.
Data’s default constructor.
DataArray’s constructor.
Sum is 55
Data’s default constructor.
Data 1222 is erased.
Data 10 is erased.
Data 9 is erased.
Data 8 is erased.
Data 7 is erased.
Data 6 is erased.
Data 5 is erased.
Data 4 is erased.
Data 3 is erased.
Data 2 is erased.
Data 1 is erased.
DataArray’s deconstructor.
Data 0 is erased.

Titre donné code

int main()
{
    
    
    int i, n;
    Data test, *testP;
    cin>>n;
    int tmp[n];
    for (i = 0; i < n; i++)
        cin>>tmp[i];
    DataArray datas(n, tmp);
    cout<<"Sum is "<<datas.getSum()<<endl;
    testP = new Data;
    cin>>n;
    testP->setValue(n);
    delete testP;
    return 0;
}

code:

#include<iostream>

using namespace std;

class Data{
    
    
	int data;
public:
	Data(){
    
    
		data=0;
		cout<<"Data’s default constructor."<<endl;
	}
	
	~Data(){
    
    
		cout<<"Data "<<data<<" is erased."<<endl;
	}
	
	int getValue(){
    
    
		return data;
	}
	
	void setValue(int nn){
    
    
		data=nn;
	}
	
};

class DataArray{
    
    
	int len;
	Data *arr;
public:
	DataArray(){
    
    
		len=0;
		arr=NULL;
	}
	
	DataArray(int n,int *a){
    
    
		len=n;
		arr=new Data[len];
		for(int i=0;i<len;i++){
    
    
			arr[i].setValue(a[i]);
		}
		cout<<"DataArray’s constructor."<<endl;
	}
	
	~DataArray(){
    
    
		for(int i=len-1;i>=0;i--){
    
    
			arr[i].~Data();
		}
		cout<<"DataArray’s deconstructor."<<endl;
	}
	
	int getSum(){
    
    
		int sum=0;
		for(int i=0;i<len;i++){
    
    
			sum+=arr[i].getValue(); 
		}
		return sum;
	}
};

int main()
{
    
    
    int i, n;
    Data test, *testP;
    cin>>n;
    int tmp[n];
    for (i = 0; i < n; i++)
        cin>>tmp[i];
    DataArray datas(n, tmp);
    cout<<"Sum is "<<datas.getSum()<<endl;
    testP = new Data;
    cin>>n;
    testP->setValue(n);
    delete testP;
    return 0;
}

Je suppose que tu aimes

Origine blog.csdn.net/timelessx_x/article/details/115263101
conseillé
Classement