《C++ Primer》13.1.6节练习(部分)
生活随笔
收集整理的這篇文章主要介紹了
《C++ Primer》13.1.6节练习(部分)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
練習13.18:
#include <iostream> #include <string> using namespace std;class Employee {private:static int sn;public:Employee() {mysn = sn++;}Employee(const string &s) {name = s;mysn = sn++;}const string &get_name() {return name;}int get_mysn() {return mysn;}private:string name;int mysn; };int Employee::sn = 0;void f(Employee &s) {cout << s.get_name() << " " << s.get_mysn() << endl; }int main() {Employee a("趙"), b = a, c;c = b;f(a);f(b);f(c);return 0; }測試結果:
練習13.19:
如上題程序,當用a初始化b時,會調用拷貝構造函數。如果不定義拷貝構造函數,則合成的拷貝構造函數簡單復制mysn,會使兩者的序號相同。
當用b為c賦值時,會調用拷貝賦值運算符。如果不定義自己的版本,則編譯器定義的合成版本會簡單復制mysn,會使兩者的序號相同。
測試結果:
練習13.20:
暫時不會!!!
練習13.21:
暫時不會!!!
總結
以上是生活随笔為你收集整理的《C++ Primer》13.1.6节练习(部分)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 弹窗广告关了弹窗广告关了怎么开
- 下一篇: C++拷贝构造函数调用时机分析