1. 程式人生 > >C++面向物件程式設計50道程式設計題(第16題)

C++面向物件程式設計50道程式設計題(第16題)

C++面向物件程式設計50道程式設計題(第16題)

摘要:C++程式設計實習是為學生提供了一個既動手又動腦,獨立實踐的機會,將課本上的理論知識和實際有機的結合起來,鍛鍊學生的分析問題和解決問題的能力,提高學生運用所學知識解決實際問題的能力。
  本專輯為程式設計入門者、高校計算機軟體專業學習或複習提供C++程式設計題庫。
  讀者請先獨立思考哦,再與參考程式進行比對檢查。

一、問題描述

在這裡插入圖片描述

二、考察內容

  基本面向物件概念,如何建立類、物件,對類私有資料成員和公有成員函式的理解,對過載運算子的理解和使用,簡單的陣列運算。

三、難度等級

難度等級:★★☆☆☆

四、參考程式

#include<iostream.h>
class Array{
	int *p;
	int n;
public:
	Array()	{	p=0;n=0; }
	Array(Array &t)
	{	n=t.n;		p=new int[n];
		for(int i=0;i<n;i++) p[i]=t.p[i];
	}
	Array(int pp[],int m)
	{	n=m;		p=new int[n];
		for(int i=0;i<n;i++) p[i]=pp[i];
	}
	Array & operator=(Array &t)
	{	n=t.n;
		if(p)delete []p;
		if(t.p){
			p=new int [n];
			for(int i=0;i<n;i++) p[i]=t.p[i];
		}
		else p=0;
		return *this;
	}
	void print()
	{	for(int i=0;i<n;i++)	cout<<p[i]<<'\t';
		cout<<endl;
	}
	Array operator++()
	{	for(int i=0;i<n;i++) ++p[i];
		return *this;
	}
	Array operator++(int)
	{	Array ar=*this;   				//A
		++(*this);
		return ar;
	}
	friend Array operator--(Array &t)
	{	for(int i=0;i<t.n;i++)  --t.p[i];
		return t;
	}
	friend Array operator--(Array &t,int)
	{	Array ar=t;
		--t;  
		//for(int i=0;i<t.n;i++)--t.p[i];
		return ar;
	}
	~Array(){if(p)delete []p;}
};
void main()
{
	int a[]={1,2,3,4,5,6,7};
	Array arr(a,7),ar;
	arr.print();
	ar=++arr;	ar.print();		arr.print();
	ar=arr++;	ar.print();		arr.print();
	ar=--arr;	ar.print();		arr.print();
	ar=arr--;	ar.print();		arr.print();
}

五、心得感受

可以在評論處寫下思考和程式設計此題的感受