標籤:stream prime 插入 log sys blog name 3.2 ++
練習13.22
1 #include <iostream> 2 #include <string> 3 #include <memory> 4 5 using namespace std; 6 7 8 class HasPtr { 9 friend ostream &print(ostream &os, HasPtr &h);10 public:11 HasPtr(const string &s = string()) : ps(s), i(0) {}12 HasPtr(const HasPtr &ptr);13 HasPtr &operator=(const HasPtr &pt);14 ~HasPtr() { }15 private:16 string ps;17 int i;18 };19 20 ostream &print(ostream &os, HasPtr &h);21 22 int main()23 {24 HasPtr has("hello");25 HasPtr have = has;26 print(cout, have);27 system("pause");28 return 0;29 }30 31 HasPtr::HasPtr(const HasPtr & ptr) : ps(ptr.ps), i(ptr.i) {}32 33 HasPtr & HasPtr::operator=(const HasPtr & pt)34 {35 ps = pt.ps;36 i = pt.i;37 return *this;38 // TODO: 在此處插入 return 語句39 }40 41 ostream & print(ostream & os, HasPtr & h)42 {43 os << h.ps << h.i << endl;44 return os;45 // TODO: 在此處插入 return 語句46 }
上述的是具有類值行為,以前做的練習是具有類指標行為;
C++primer 13.2節練習