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

📄 ninherit.cpp

📁 Think in C++ 第二版源码
💻 CPP
字号:
//: C14:Ninherit.cpp

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

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

// (c) Bruce Eckel 1999

// Copyright notice in Copyright.txt

// Non-inherited functions

#include <fstream>

using namespace std;

ofstream out("ninherit.out");



class Root {

public:

  Root() { out << "Root()\n"; }

  Root(Root&) { out << "Root(Root&)\n"; }

  Root(int) { out << "Root(int)\n"; }

  Root& operator=(const Root&) {

    out << "Root::operator=()\n";

    return *this;

  }

  class Other {};

  operator Other() const {

    out << "Root::operator Other()\n";

    return Other();

  }

  ~Root() { out << "~Root()\n"; }

};



class Derived : public Root {};



void f(Root::Other) {}



int main() {

  Derived d1;  // Default constructor

  Derived d2 = d1; // Copy-constructor

//! Derived d3(1); // Error: no int constructor

  d1 = d2; // Operator= not inherited

  f(d1); // Type-conversion IS inherited

} ///:~

⌨️ 快捷键说明

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