⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 autocc.cpp

📁 希望我提供的代码对大家有帮助
💻 CPP
字号:
//: C11:Autocc.cpp

// From Thinking in C++, 2nd Edition

// Available at http://www.BruceEckel.com

// (c) Bruce Eckel 1999

// Copyright notice in Copyright.txt

// Automatic copy-constructor

#include <iostream>

#include <cstring>

using namespace std;



class WithCC { // With copy-constructor

public:

  // Explicit default constructor required:

  WithCC() {}

  WithCC(const WithCC&) {

    cout << "WithCC(WithCC&)" << endl;

  }

};



class WoCC { // Without copy-constructor

  static const int bsz = 30;

  char buf[bsz];

public:

  WoCC(const char* msg = 0) {

    memset(buf, 0, bsz);

    if(msg) strncpy(buf, msg, bsz);

  }

  void print(const char* msg = 0) const {

    if(msg) cout << msg << ": ";

    cout << buf << endl;

  }

};



class Composite {

  WithCC withcc; // Embedded objects

  WoCC wocc;

public:

  Composite() : wocc("Composite()") {}

  void print(const char* msg = 0) {

    wocc.print(msg);

  }

};



int main() {

  Composite c;

  c.print("contents of c");

  cout << "calling Composite copy-constructor"

       << endl;

  Composite c2 = c;  // Calls copy-constructor

  c2.print("contents of c2");

} ///:~

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -