C++面向物件程式設計50道程式設計題(第16題)
阿新 • • 發佈:2018-11-29
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(); }
五、心得感受
可以在評論處寫下思考和程式設計此題的感受