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

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

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

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

一、問題描述

在這裡插入圖片描述

二、考察內容

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

三、難度等級

難度等級:★★☆☆☆

四、參考程式

#include<iostream.h>
#define M 4
class Array{
	int b[M][M];
public:
	Array(int (*p)[M]);
	void operator +( );
	friend void operator -(Array &b);
	void print();
};
Array::Array(int (*p)[M]){
	for(int i=0;i<M;i++)
		for(int j=0;j<M;j++)
			b[i][j]=p[i][j];
}
void Array::operator +(){
	int t[M][M];
	for(int i=0;i<M;i++)
		for(int j=0;j<M;j++)
			t[j][M-1-i]=b[i][j];
	for(i=0;i<M;i++)
		for(int j=0;j<M;j++)
			b[i][j]=t[i][j];
}
void operator -(Array &b){
	int t[M][M];
	for(int i=0;i<M;i++)
		for(int j=0;j<M;j++)
			t[M-1-j][i]=b.b[i][j];
	for(i=0;i<M;i++)
		for(int j=0;j<M;j++)
			b.b[i][j]=t[i][j];
}
void Array::print(){
	for(int i=0;i<M;i++){
		for(int j=0;j<M;j++)
			cout<<b[i][j]<<'\t';
		cout<<'\n';
	}
}
void main(){
	int a[][M]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16};
	Array arr(a);
	arr.print();
	cout<<'\n';
	+arr;
	arr.print();
	cout<<'\n';
	-arr;
	arr.print();
}

五、心得感受

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