題目:設計乙個類,它又三個unsigned成員,分別表示年、月和日。為其編寫建構函式,接受乙個表示日期的string引數,你的建構函式應該能處理不同的資料格式,如january 1,1990、1/1/1990、jan 1 1990等
#include#include#includeusing namespace std;
class date
;unsigned date::change_to_digit(const string& s)
; if (s.find_first_of(numbers) != string::npos)
return stoi(s);
vectorv;
decltype(v.size()) loc = 0;
for (decltype(v.size()) i = 0; i != v.size(); ++i)
if (s.find(v[i]) != string::npos)
return loc;
}date::date(const string& s)
; auto pos = s.find_first_of(punct);
month = change_to_digit(s.substr(0, pos));
++pos;
auto pos2 = s.find_first_of(punct, pos);
date = stoi(s.substr(pos, pos2 - pos));
++pos2;
auto pos3 = s.find_first_of(punct, pos2);
year= stoi(s.substr(pos2, pos3 - pos2));
}void print(date& item)
int main()
C Primer 15 繼承的建構函式
子類為完成基類初始化,在c 11之前,需要在初始化列表呼叫基類的建構函式,從而完成建構函式的傳遞。如果基類擁有多個建構函式,那麼子類也需要實現多個與基類建構函式對應的建構函式。1 class base 25 base char c m c c m value 0 6private 7 intm va...
第二章 構造高效且健壯的網路程式 一
第二章 構造高效且健壯的網路程式 一 技巧15 理解tcp的寫操作 1 從應用題程式的角度看寫操作 首先會將資料從使用者緩衝區複製到核心中去,tcp可能傳送全部 部分或者不傳送資料,應用程式無法判定傳送了多少資料,也無法判斷對等實體是否判定 除非tcp傳送緩衝區滿了,否則寫操作是不會被阻塞的 寫操作...
c primer 學習筆記22類的建構函式
建構函式是特殊的成員函式,只要建立類型別的新物件,都要執行建構函式。建構函式的工作是保證每個物件的資料成員具有合適的初始值。class sales item private std string isbn unsigned units sold double revenue 建構函式可以被過載 可以...