ninherit.cpp

来自「希望我提供的代码对大家有帮助」· C++ 代码 · 共 39 行

CPP
39
字号
//: 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 + =
减小字号Ctrl + -
显示快捷键?