亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? driverprogram.cpp

?? 《24學時精通c++》的光盤內容
?? CPP
字號:
 // Listing 22.3

 #include <iostream>

 #include <string.h>

 

 typedef unsigned long pDate;

 enum SERVICE { PostMaster, Interchange, 

     CompuServe, Prodigy, AOL, Internet };

 

 class String

 {

 public:

     // constructors

     String();

     String(const char *const);

     String(const String &);

     ~String();

 

     // overloaded operators

     char & operator[](int offset);

     char operator[](int offset) const;

     String operator+(const String&);

     void operator+=(const String&);

     String & operator= (const String &);

     friend std::ostream & operator<<

 		(std::ostream& theStream, String& theString);

     // General accessors

     int GetLen()const { return itsLen; }

     const char * GetString() const { return itsString; }

     // static int ConstructorCount;

 

 private:

     String (int);         // private constructor

     char * itsString;

     int itsLen;

 };

 

 // default constructor creates string of 0 bytes

 String::String()

 {

     itsString = new char[1];

     itsString[0] = '\0';

     itsLen=0;

     // std::cout << "\tDefault string constructor\n";

     // ConstructorCount++;

 }

 

 // private (helper) constructor, used only by

 // class methods for creating a new string of

 // required size.  Null filled.

 String::String(int len)

 {

     itsString = new char[len+1];

     int i;

     for ( i = 0; i<=len; i++)

         itsString[1] = '\0';

     itsLen=len;

     // std::cout << "\tString(int) constructor\n";

     // ConstructorCount++;

 }

 

 // Converts a character array to a String

 String::String(const char * const cString)

 {

     itsLen = strlen(cString);

     itsString = new char[itsLen+1];

     int i;

     for ( i = 0; i<itsLen; i++)

         itsString[i] = cString[i];

     itsString[itsLen]='\0';

     // std::cout << "\tString(char*) constructor\n";

     // ConstructorCount++;

 }

 

 // copy constructor

 String::String (const String & rhs)

 {

     itsLen=rhs.GetLen();

     itsString = new char[itsLen+1];

     int i;

     for (i = 0; i<itsLen;i++)

         itsString[i] = rhs[i];

     itsString[itsLen] = '\0';

     // std::cout << "\tString(String&) constructor\n";

     // ConstructorCount++;

 }

 

 // destructor, frees allocated memory

 String::~String ()

 {

     delete [] itsString;

     itsLen = 0;

     // std::cout << "\tString destructor\n";

 }

 

 String& String::operator=(const String & rhs)

 {

     if (this == &rhs)

         return *this;

     delete [] itsString;

     itsLen=rhs.GetLen();

     itsString = new char[itsLen+1];

     int i;

     for (i = 0; i<itsLen;i++)

         itsString[i] = rhs[i];

     itsString[itsLen] = '\0';

     return *this;

     // std::cout << "\tString operator=\n";

 }

 

 //non constant offset operator, returns

 // reference to character so it can be changed

 char & String::operator[](int offset)

 {

     if (offset > itsLen)

         return itsString[itsLen-1];

     else

         return itsString[offset];

 }

 

 // constant offset operator for use

 // on const objects (see copy constructor!)

 char String::operator[](int offset) const

 {

     if (offset > itsLen)

         return itsString[itsLen-1];

     else

         return itsString[offset];

 }

 

 // creates a new string by adding current

 // string to rhs

 String String::operator+(const String& rhs)

 {

     int  totalLen = itsLen + rhs.GetLen();

     String temp(totalLen);

     int i,j;

     for (i = 0; i<itsLen; i++)

         temp[i] = itsString[i];

     for (j = 0; j<rhs.GetLen(); j++, i++)

         temp[i] = rhs[j];

     temp[totalLen]='\0';

     return temp;

 }

 

 // changes current string, returns nothing

 void String::operator+=(const String& rhs)

 {

     int rhsLen = rhs.GetLen();

     int totalLen = itsLen + rhsLen;

     String  temp(totalLen);

     int i,j;

     for ( i = 0; i<itsLen; i++)

         temp[i] = itsString[i];

     for ( j = 0; j<rhs.GetLen(); j++, i++)

         temp[i] = rhs[i-itsLen];

     temp[totalLen]='\0';

     *this = temp;

 }

 

 // int String::ConstructorCount = 0;

 

 std::ostream& operator<<( 

                          std::ostream& theStream,

                         String& theString)

 {

     theStream << theString.GetString();

     return theStream;

 }

 

 class pAddress

 {

 public:

     pAddress(SERVICE theService,

             const String& theAddress,

             const String& theDisplay):

         itsService(theService),

         itsAddressString(theAddress),

         itsDisplayString(theDisplay)

     {}

     // pAddress(String, String);

     // pAddress();

     // pAddress (const pAddress&);

     ~pAddress(){}

     friend std::ostream& operator<<( 

 	  std::ostream& theStream, pAddress& theAddress);

     String& GetDisplayString() 

 	{ return itsDisplayString; }

 private:

     SERVICE itsService;

     String itsAddressString;

     String itsDisplayString;

 };

 

 std::ostream& operator<<

   ( std::ostream& theStream, pAddress& theAddress)

 {

     theStream << theAddress.GetDisplayString();

     return theStream;

 }

 

 class PostMasterMessage

 {

 public:

 //  PostMasterMessage();

 

     PostMasterMessage(const pAddress& Sender,

                       const pAddress& Recipient,

                       const String& Subject,

                       const pDate& creationDate);

 

     ~PostMasterMessage(){}

 

     void Edit(); // invokes editor on this message

 

     pAddress& GetSender()  { return itsSender; }

     pAddress& GetRecipient()  { return itsRecipient; }

     String& GetSubject()  { return itsSubject; }

     //  void SetSender(pAddress& );

     // other member accessors

 

     // operator methods here, including operator equals

     // and conversion routines to turn PostMaster messages

     // into messages of other formats.

 

 private:

     pAddress itsSender;

     pAddress itsRecipient;

     String  itsSubject;

     pDate itsCreationDate;

     pDate itsLastModDate;

     pDate itsReceiptDate;

     pDate itsFirstReadDate;

     pDate itsLastReadDate;

 };

 

 PostMasterMessage::PostMasterMessage(

     const pAddress& Sender,

     const pAddress& Recipient,

     const String& Subject,

     const pDate& creationDate):

     itsSender(Sender),

     itsRecipient(Recipient),

     itsSubject(Subject),

     itsCreationDate(creationDate),

     itsLastModDate(creationDate),

     itsFirstReadDate(0),

     itsLastReadDate(0)

 {

     std::cout << "Post Master Message created. \n";

 }

 

 void PostMasterMessage::Edit()

 {

     std::cout << "PostMasterMessage edit function called\n";

 }

 

 

 int main()

 {

     pAddress Sender(

         PostMaster, "jliberty@PostMaster", "Jesse Liberty");

     pAddress Recipient(

         PostMaster, "sliberty@PostMaster","Stacey Liberty");

     PostMasterMessage PostMasterMessage(

         Sender, Recipient, "Saying Hello", 0);

     std::cout << "Message review... \n";

     std::cout << "From:\t\t" 

         << PostMasterMessage.GetSender() << std::endl;

     std::cout << "To:\t\t" 

         << PostMasterMessage.GetRecipient() << std::endl;

     std::cout << "Subject:\t" 

         << PostMasterMessage.GetSubject() << std::endl;

     return 0;

 }

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日本不卡123| 日本一区二区三区高清不卡| 91福利在线看| 欧洲av一区二区嗯嗯嗯啊| 26uuu国产电影一区二区| 亚洲欧美在线视频观看| 精品无码三级在线观看视频| 9i看片成人免费高清| 亚洲精品欧美激情| 亚洲国产综合在线| 国产精品一二三四| 中文字幕亚洲区| 午夜私人影院久久久久| 国产一区二区不卡在线| 国产91精品免费| 日本欧美加勒比视频| 国产成人精品三级麻豆| 日韩精品最新网址| 亚洲精品高清视频在线观看| 亚洲黄色免费网站| 欧美日韩不卡视频| 欧美成人伊人久久综合网| 国产精品国产三级国产三级人妇 | 亚洲欧美日韩一区二区| 狠狠色丁香久久婷婷综合丁香| 粉嫩av一区二区三区在线播放 | 亚洲国产精品99久久久久久久久 | 久久久国产综合精品女国产盗摄| 亚洲免费观看高清完整版在线 | 亚洲成在人线免费| 成人精品免费看| 91福利视频久久久久| 欧美mv日韩mv国产网站| 午夜精品一区在线观看| eeuss影院一区二区三区| 久久女同性恋中文字幕| 日本 国产 欧美色综合| 欧美日本在线观看| 亚洲成人动漫在线观看| 色94色欧美sute亚洲线路一ni| 久久精品视频在线看| 精品中文字幕一区二区小辣椒 | 午夜精品久久久久久久蜜桃app| 亚洲色图视频网| 成人毛片视频在线观看| 久久久影院官网| 久久99在线观看| 欧美大肚乱孕交hd孕妇| 日韩成人一区二区| 欧美一区二区三区婷婷月色| 午夜av区久久| 欧美三级日本三级少妇99| 日韩区在线观看| 久久天堂av综合合色蜜桃网 | 亚洲欧美中日韩| 日韩va亚洲va欧美va久久| 欧美人伦禁忌dvd放荡欲情| 亚洲一区电影777| 成人午夜激情片| 亚洲天堂久久久久久久| 91在线免费看| 久久亚洲精品国产精品紫薇| 国产麻豆9l精品三级站| 国产午夜久久久久| 99久久国产综合精品女不卡| 亚洲情趣在线观看| 欧美在线色视频| 国产乱一区二区| 日韩一区二区精品在线观看| 亚洲成精国产精品女| 99国产精品久久久久久久久久| **性色生活片久久毛片| 欧美丝袜丝交足nylons图片| 丝袜美腿亚洲综合| 精品免费一区二区三区| 大尺度一区二区| 亚洲一二三专区| 欧美性一二三区| 蜜桃视频一区二区| 中文字幕av一区二区三区免费看| 一本到一区二区三区| 成人免费观看男女羞羞视频| 日本高清不卡一区| 男男gaygay亚洲| 国产精品污网站| 成人app软件下载大全免费| 国产精品乱码一区二三区小蝌蚪| 国产精品毛片a∨一区二区三区| 亚洲精品视频自拍| 欧美日韩免费高清一区色橹橹| 久久99国产精品免费| 国产精品剧情在线亚洲| 7878成人国产在线观看| 国产成人在线看| 亚洲成av人片在www色猫咪| 久久综合色之久久综合| 欧美视频在线播放| 国产成人免费在线观看| 日韩精品电影一区亚洲| 欧美高清在线一区| 日韩欧美色电影| 91欧美激情一区二区三区成人| 精品亚洲国内自在自线福利| 一区二区三区不卡在线观看 | 成人做爰69片免费看网站| 亚洲国产视频在线| 国产精品久久久久久久蜜臀| 欧美日韩国产精品成人| 久久久欧美精品sm网站| 国产无一区二区| 欧美精品乱码久久久久久按摩| 国产高清亚洲一区| 美女视频网站久久| 亚洲综合一区二区| 自拍偷拍亚洲激情| 国产日韩成人精品| 精品毛片乱码1区2区3区| 欧美日韩高清一区二区三区| 激情综合色丁香一区二区| 午夜精品久久久久| 亚洲精品国产a| 国产精品卡一卡二卡三| 中文字幕av一区二区三区高| 久久亚洲欧美国产精品乐播 | 国产精品久久久久久久蜜臀 | 国产一区二区三区日韩| 日本vs亚洲vs韩国一区三区二区| 亚洲福利视频三区| 午夜av区久久| 日韩国产精品大片| 青青草精品视频| 蜜臀av性久久久久蜜臀av麻豆 | 国产一区二区三区不卡在线观看| 天使萌一区二区三区免费观看| 亚洲精品日韩综合观看成人91| 国产精品久久久久久户外露出| 欧美国产国产综合| 国产精品女主播av| 亚洲图片欧美激情| 亚洲精品老司机| 亚洲成av人片一区二区三区| 天堂精品中文字幕在线| 91精品国产91久久久久久一区二区| 亚洲激情图片qvod| 午夜精彩视频在线观看不卡| 国产欧美日韩一区二区三区在线观看| 欧美二区在线观看| 91精品国产综合久久小美女| 欧美变态口味重另类| 欧美成人一区二区三区片免费| 日韩女优av电影在线观看| 精品久久人人做人人爽| 久久久久亚洲综合| 国产精品卡一卡二| 亚洲国产成人av网| 久久福利视频一区二区| 狠狠色丁香九九婷婷综合五月| 国产精品资源网| 色综合天天综合色综合av | 99综合电影在线视频| 色一区在线观看| 日韩午夜激情av| 国产欧美综合在线观看第十页| 中文字幕一区二区三区色视频 | 国产女人aaa级久久久级| 久久精品亚洲麻豆av一区二区| 国产清纯美女被跳蛋高潮一区二区久久w | 精品成人佐山爱一区二区| 久久九九全国免费| 国产精品久久久一本精品| 亚洲综合男人的天堂| 奇米777欧美一区二区| 午夜成人免费电影| 国产精品一级黄| hitomi一区二区三区精品| av不卡在线播放| 欧美日本在线视频| 欧美国产日韩a欧美在线观看| 夜夜精品视频一区二区| 麻豆久久一区二区| 东方欧美亚洲色图在线| 色丁香久综合在线久综合在线观看| 在线视频欧美区| 色婷婷亚洲婷婷| 欧美久久高跟鞋激| 中文字幕亚洲欧美在线不卡| 日韩和欧美一区二区| 94-欧美-setu| 久久蜜桃一区二区| 偷拍一区二区三区| 91在线国内视频| 国产三级一区二区三区| 日韩精品高清不卡| 欧美午夜精品久久久久久孕妇| 久久久蜜桃精品| 国产精品亚洲视频| 日韩精品中文字幕一区| 奇米四色…亚洲| 日韩欧美电影一区| 久久精品国产**网站演员|