亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C++ > 正文

C++類和對象實例解析(二)

2020-01-26 14:59:03
字體:
來源:轉載
供稿:網友

C++既是面向對象也是面向過程的語言,在這里就有一個重要的概念――。
        何謂類?類是對對象的一種抽象,舉例來講:每一個實實在在存在的人就是一個對象,人有很多共同的特征(一個頭,兩條腿,能走,能跑),這具有共同特征的人就成為一個類。類是一個抽象的名詞,每一個人(即對象)是這個類的實例。
        對象間具有的共同特征是對象的屬性和行為。錄像機是一個對象,它的屬性是生產廠家、牌子、重量、顏色等等,它的行為就是它的功能,如錄像、放像、快進、倒退等操作。
C++程序中,需要先定義一個類,形如:
  Class 類名
     {
        定義變量;
        ….
        定義函數
      }
在類體中時成員列表,包括數據和操作數據的函數,即數據成員、成員函數。這體現了類的封裝性和信息的隱蔽性。
成員函數一般在類體中聲明,在類體外定義。
構造函數:對對象進行賦值
析構函數:在函數功能域結束時,釋放對象成員的空間。
內聯函數:為了節省函數調用的時間
完成各種功能函數…….
定義對象就需要對類進行實例化。形如:類名對象名

        類是一個抽象,它不占任何內存,只有當其實例化成為對象之后,才會給其分配空間。
        計算機中就是用對象來描述大千世界的事物。對象之間通過消息建立聯系,借助函數完成各種各樣的功能。
簡單的說,這就是對象和類。

下面通過實例理解

【2-1】定義一個日C++類和對象期類date,該類對象存放一個日期,可以提供的操作有:取日期值,取年份,提取月份,提取日期以及設計日期值。
【分析】這個程序需要先定義一個類類型,這個類的數據成員有year,month,day,并且將其設計為private訪問權限。還需要有5個成員函數,分別為:

void getdate();          //取日期值,格式為“year-month-day”int getyear();          //取年份int getmonth();         //取月份int getday();          //取日期void setdate(int y,int m,int d);    //設置日期值程序代碼如下:#include <iostream>using namespace std;class date{public: void getdate(); int getyear(); int getmonth(); int getday(); void setdate(int y,int m,int d);private: int year,month,day;};int date::getyear(){ return year; }int date::getmonth(){ return month; }int date::getday(){ return day; }void date::getdate(){ cout<<"today is:"<<year<<"-"<<month<<"-"<<day<<endl; }void date::setdate(int y,int m,int d){ year=y; month=m; day=d;  }int main(){ date d; d.setdate(2011,2,1); cout<<"year="<<d.getyear()<<endl; cout<<"month="<<d.getmonth()<<endl; cout<<"day="<<d.getday()<<endl; d.getdate(); return 0;}

【總結】這是一個最簡單的類程序,但其中也存在不少問題。比如,如果沒有setdate()函數,就無法對對象賦初值,而且必須按照特定的格式對對象進行設置初值。這個問題就應該采用構造函數來進行對象初始化。
【2-2】對例【2-1】進行改進,要求使用構造函數進行對象初始化,并且格式要不一致。
【分析】這個例子需要使用構造函數,并且要用到構造函數重載,使用默認參數值的構造函數和拷貝構造函數。
程序代碼如下:

#include <iostream>using namespace std;class date{public: date(int y=0,int m=0,int d=0) { year=y; month=m; day=d; } date(date &d) { year=d.year; month=d.month; day=d.day; } void getdate() { cout<<"today is:"<<year<<"-"<<month<<"-"<<day<<endl; } int getyear() { return year; } int getmonth() { return month; } int getday() { return day; }private: int year,month,day;};int main(){ date d1(2011,2,1),d2,d3(d1); d1.getdate(); d2.getdate(); d3.getdate(); return 0;}

【總結】程序中的對象d1有完整的實參表,則調用構造函數來進行對象初始化;對象d2沒有實參表,系統同樣自動調用構造函數進行對象初始化,只不過形參的值采用默認參數值進行初始化。對于對象d3,則采用拷貝構造函數進行初始化。
【2-3】輸入數據到數組內求和、最大值、最小值與平均值后輸出,將成員函數定義在類外。
【分析】這個程序時對C語言中所學內容的一個總結,是從面向過程到面向對象的跨越。這個類的數據成員應該包括數組。成員函數應該有數組輸入函數、數組輸出函數、求和函數、最大值函數、最小值函數和求平均值函數。
程序代碼如下:

#include <iostream>using namespace std;#define N 10class array{public: void input(); void output(); int max(); int min(); int sum(); float average();private: int a[N],maxnumber,minnumber,sumnumber; float avenumber;};void array::input(){ int i=0; cout<<"Please input "<<N<<" numbers:"<<endl; for(i=0;i<N;i++) { cout<<"a["<<i<<"]="; cin>>a[i]; }}void array::output(){ int i=0; cout<<"array a is:"<<endl; for(i=0;i<N;i++) cout<<a[i]<<" "; cout<<endl;}int array::max(){ int i; maxnumber=a[0]; for(i=1;i<N;i++) if(maxnumber<a[i])  maxnumber=a[i]; return maxnumber;}int array::min(){ int i; minnumber=a[0]; for(i=1;i<N;i++) if(minnumber>a[i])  minnumber=a[i]; return minnumber;}int array::sum(){ int i; sumnumber=a[0]; for(i=1;i<N;i++) sumnumber+=a[i]; return sumnumber;}float array::average(){ float ave=static_cast<float>(sumnumber/N); return ave;}int main(){ array a; a.input(); a.output(); cout<<"The max number is "<<a.max()<<endl; cout<<"The min number is "<<a.min()<<endl; cout<<"The sum number is "<<a.sum()<<endl; cout<<"The average number is"<<a.average()<<endl;  return 0;}

【總結】從上面的程序可以看出,類array里面包括對數組的各種操作,包括求和,求最大值,求最小值以及求平均值等。
【2-4】設計一個表示貓的類,包括貓的顏色、體重、年齡等數據,具有設置貓的顏色,修改和顯示貓的體重、年齡等操作。
【分析】設計貓類的類名為Cat,此類有3個數據成員,顏色用string類表示,可以存放漢字,體重用實數類型表示,年齡用整數型表示,為了保護數據的安全性,3個數據成員全部為私有性。對貓的屬性數據的設置和修改,全部為公有函數。
程序代碼如下:

#include <iostream>#include <string>using namespace std;class Cat{public: Cat(string c="red",float w=1,int a=1); string get_color(); float get_weight(); int get_age(); void display();private: string color; float weight; int age;};Cat::Cat(string c,float w,int a){ color=c; weight=w; age=a;}string Cat::get_color(){ return color;}float Cat::get_weight(){ return weight;}int Cat::get_age(){ return age;}void Cat::display(){ cout<<"The color of this cat is "<<get_color()<<endl; cout<<"The weight of this cat is "<<get_weight()<<endl; cout<<"The age of this cat is "<<get_age()<<endl;}int main(){ Cat c1,c2("yellow",1,2); cout<<"c1 is:"<<endl; c1.display(); cout<<"c2 is:"<<endl; c2.display(); return 0;}

【總結】從上面的程序可以看出,構造函數可以用類對對象進行初始化,并且構造函數可以進行重載。

希望本文可以對大家學習c++編程語言有所幫助,也希望大家可以繼續關注!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
精品国产一区二区三区四区在线观看| 成人免费在线视频网址| 国产精品久久久久久av| 日韩av三级在线观看| 亚洲黄在线观看| 精品视频久久久| 亚洲国产精品99久久| 欧美国产日产韩国视频| 欧美中文字幕视频在线观看| 亚洲第一精品自拍| 精品香蕉一区二区三区| 亚洲午夜久久久久久久| 亚洲r级在线观看| 日韩成人av在线播放| 久久琪琪电影院| 91视频国产高清| 5252色成人免费视频| 国产精品久久久久久久久久久久久久| 欧洲美女免费图片一区| 久久天天躁夜夜躁狠狠躁2022| 8090理伦午夜在线电影| 午夜免费在线观看精品视频| 久久久精品2019中文字幕神马| 国产欧美精品久久久| zzijzzij亚洲日本成熟少妇| 国产欧美一区二区三区在线| 亚洲女人天堂色在线7777| 亚洲女人天堂av| 日本午夜在线亚洲.国产| 国产精品一区二区久久久| 伊人伊成久久人综合网小说| 亚洲最大成人在线| 日韩欧美一区二区三区久久| 国产亚洲激情视频在线| 俺去啦;欧美日韩| 欧美激情视频在线观看| 色视频www在线播放国产成人| 日韩电影中文字幕在线| 亚洲一区二区三区毛片| 国内揄拍国内精品少妇国语| 国产一区二区在线免费| 欧美性猛交xxxx| 91久久精品美女高潮| 亚洲人成在线播放| 欧美在线亚洲在线| 欧美激情亚洲视频| 97精品国产97久久久久久免费| 日韩美女免费线视频| 国产欧亚日韩视频| 亚洲国语精品自产拍在线观看| 欧美乱大交xxxxx另类电影| 日韩av在线免费观看一区| 亚洲激情视频网站| 日韩av免费在线| 在线电影中文日韩| 日韩欧美亚洲国产一区| 欧美日韩aaaa| 亚洲精品一区二三区不卡| 国内精品小视频| 亚洲精品在线视频| 久久精品国产精品亚洲| 国内精品模特av私拍在线观看| 成人国产亚洲精品a区天堂华泰| 91日本视频在线| 日韩精品在线免费播放| 中文字幕一精品亚洲无线一区| 亚洲欧洲免费视频| 日韩精品在线电影| 亚洲精品国产精品乱码不99按摩| 国产精品精品一区二区三区午夜版| 91亚洲人电影| 色午夜这里只有精品| 中文字幕在线观看日韩| 欧美极度另类性三渗透| 日本精品va在线观看| 国产亚洲激情在线| 成人网页在线免费观看| 久久久久久久91| 91干在线观看| 亚洲电影免费观看高清完整版在线| 国产欧美日韩中文字幕| 亚洲男人av在线| 欧美激情图片区| 91精品在线影院| 精品自在线视频| 国产一区二区美女视频| 精品久久久精品| 中文字幕精品国产| 欧美成人免费va影院高清| 超碰91人人草人人干| 国产成人精品久久二区二区91| 欧美肥臀大乳一区二区免费视频| 欧美日本黄视频| 韩日精品中文字幕| 欧美韩日一区二区| 欧美乱人伦中文字幕在线| 欧美午夜精品久久久久久浪潮| 久久久亚洲国产天美传媒修理工| 96pao国产成视频永久免费| 北条麻妃久久精品| 中文字幕日韩欧美精品在线观看| 国产欧美精品一区二区| 欧美久久久精品| 欧美国产日韩中文字幕在线| 美日韩在线视频| 久久99久国产精品黄毛片入口| 成人黄色av播放免费| 国产福利精品在线| 91色在线观看| 国产精品美女免费| 国产精品久久一区| 欧美野外猛男的大粗鳮| 国产成人精品免高潮在线观看| 日韩经典中文字幕在线观看| 亚洲激情视频网| 国产拍精品一二三| 91精品视频大全| 亚洲xxxxx| 久久精品视频在线观看| 色婷婷久久一区二区| 一个人看的www欧美| 亚洲午夜av电影| 欧美一区视频在线| 亲爱的老师9免费观看全集电视剧| 亚洲欧美日韩图片| 中文字幕亚洲无线码在线一区| 欧美日韩国产成人在线| 欧美精品在线免费播放| 欧美一级片久久久久久久| 亚洲色图25p| 亚洲国产精品福利| 不卡伊人av在线播放| 欧美最猛性xxxxx(亚洲精品)| 懂色av一区二区三区| 日本一欧美一欧美一亚洲视频| 欧洲日本亚洲国产区| 亚洲男人天堂2024| 中文字幕国产亚洲2019| 欧美日韩国产综合视频在线观看中文| 国产精品久久久久久一区二区| 亚洲精品日韩在线| 欧美日韩精品在线视频| 欧美不卡视频一区发布| 中文日韩在线视频| 欧美视频在线观看免费网址| 日韩欧中文字幕| 国产精品亚洲欧美导航| 欧美黑人性猛交| 欧美日韩色婷婷| 国内偷自视频区视频综合| 成人精品久久久| 久久精品男人天堂| 精品视频9999| 在线日韩中文字幕| 欧美日韩不卡合集视频| 精品国产一区二区三区久久狼5月| 日韩毛片中文字幕| 久久久国产精品视频| 午夜精品久久17c| 国产精品电影网| 亚洲国产日韩欧美在线动漫| 91福利视频网| 亚洲欧美中文日韩在线v日本| 精品久久久久久中文字幕大豆网|