生活随笔
收集整理的這篇文章主要介紹了
【C++ Primer | 13】课后习题答案
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章目錄
- 13.1.4節目練習
- 13.2節練習
- 13.2.2練習
13.1.4節目練習
練習13.14
#include <iostream>
using namespace std
;class numbered
{
private
: static int seq
;
public
:numbered() { mysn
= seq
++; }int mysn
;
};int numbered
::seq
= 0;void f(numbered s
)
{ cout
<< s
.mysn
<< endl
;
}int main()
{numbered a
, b
= a
, c
= b
;f(a
);f(b
);f(c
);
}
練習13.15
#include <iostream>
using namespace std
;class numbered
{
private
:static int seq
;
public
:numbered() { mysn
= seq
++; }numbered(const numbered
&n
) { mysn
= seq
++; }int mysn
;
};int numbered
::seq
= 0;void f(numbered s
)
{cout
<< s
.mysn
<< endl
;
}int main()
{numbered a
, b
= a
, c
= b
;f(a
);f(b
);f(c
);
}
練習13.15
#include <iostream>
using namespace std
;class numbered
{
private
:static int seq
;
public
:numbered() { mysn
= seq
++; }numbered(const numbered
&n
) { mysn
= seq
++; }int mysn
;
};int numbered
::seq
= 0;void f(numbered
&s
)
{cout
<< s
.mysn
<< endl
;
}int main()
{numbered a
, b
= a
, c
= b
;f(a
);f(b
);f(c
);
}
13.2節練習
#include <string>class HasPtr
{
public
:HasPtr(const std
::string
&s
= std
::string()) : ps(new std
::string(s
)), i(0) {}HasPtr(const HasPtr
&hp
) : ps(new std
::string(*hp
.ps
)), i(hp
.i
) {}HasPtr
& operator
=(const HasPtr
&hp
) {auto new_p
= new std
::string(*hp
.ps
);delete ps
;ps
= new_p
;i
= hp
.i
;return *this
;}~HasPtr() { delete ps
;}
private
:std
::string
*ps
;int i
;
};
13.2.2練習
#include <string>class HasPtr
{
public
:HasPtr(const std
::string
& s
= std
::string()) : ps(new std
::string(s
)), i(0), use(new
size_t(1)) {}HasPtr(const HasPtr
& hp
) : ps(hp
.ps
), i(hp
.i
), use(hp
.use
) { ++* use
; }HasPtr
& operator
=(const HasPtr
& rhs
);
private
:std
::string
* ps
;int i
;size_t
* use
;
};HasPtr
& HasPtr
::operator
=(const HasPtr
& rhs
)
{++* rhs
.use
;if (-- * use
== 0){delete ps
;delete use
;}ps
= rhs
.ps
;i
= rhs
.i
;use
= rhs
.use
;return *this
;
}
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎
總結
以上是生活随笔為你收集整理的【C++ Primer | 13】课后习题答案的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。