C++面向物件程式設計50道程式設計題(第13題)
阿新 • • 發佈:2018-11-29
C++面向物件程式設計50道程式設計題(第13題)
摘要:C++程式設計實習是為學生提供了一個既動手又動腦,獨立實踐的機會,將課本上的理論知識和實際有機的結合起來,鍛鍊學生的分析問題和解決問題的能力,提高學生運用所學知識解決實際問題的能力。
本專輯為程式設計入門者、高校計算機軟體專業學習或複習提供C++程式設計題庫。
讀者請先獨立思考哦,再與參考程式進行比對檢查。
一、問題描述
二、考察內容
基本面向物件概念,如何建立類、物件,對類私有資料成員和公有成員函式的理解,對過載運算子的理解,簡單的字串處理。
三、難度等級
難度等級:★★★☆☆
四、參考程式
#include<iostream.h> #include<string.h> class STR{ char *s; public: STR(char *p=0); STR& operator =(STR &str); friend STR& operator+=(STR &str1,STR &str2); void print(); ~STR(); }; STR::STR(char *p){ if(p==0)s=0; else{ s=new char[strlen(p)+1]; strcpy(s,p); } } STR& STR::operator =(STR &str){ if(s)delete[]s; s=new char[strlen(str.s)+1]; strcpy(s,str.s); return *this; } STR& operator+=(STR &str1,STR &str2){ char *p=new char[strlen(str1.s)+strlen(str2.s)+1]; strcpy(p,str1.s); strcat(p,str2.s); if(str1.s)delete []str1.s; str1.s=new char[strlen(p)+1]; strcpy(str1.s,p); if(p)delete []p; return str1; } void STR::print(){ cout<<s<<'\n'; } STR::~STR(){if(s)delete []s;} void main(){ STR str1("abcd"),str2("12345"),str3; str1.print(); str2.print(); str3=str1+=str2; str3.print(); }
五、心得感受
可以在評論處寫下思考和程式設計此題的感受