구조 및 분석 함수 및 = 조작부호 계승 불가 및 내부 클래스의 용법

3771 단어 내부 클래스
모든 함수가 자동으로 기류에서 파생류로 계승되는 것은 아니다.구조 함수와 분석 함수는 대상의 창설과 분석을 처리하는 데 사용되며, 그들은 그들의 특수한 차원의 대상에 대해 무엇을 하는지 알 뿐이다.따라서 전체 차원에서 모든 구조 함수와 분석 함수는 반드시 호출되어야 한다. 즉, 구조 함수와 분석 함수는 계승될 수 없다.또한operator=는 구조 함수와 유사한 활동을 완성하기 때문에 계승될 수 없습니다.
//: NINHERIT.CPP -- Non-inherited functions
#include <fstream.h>

class root {
public:
  root() { cout << "root()
"; } root(root&) { cout << "root(root&)
"; } root(int) { cout << "root(int)
"; } root& operator=(const root&) { cout << "root::operator=()
"; return *this; } class other {}; // operator other() const { cout << "root::operator other()
"; return other(); } ~root() { cout << "~root()
"; } }; class derived : public root {}; void f(root::other) {} // , 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 }

결과 출력:
root()root(root&)root::operator=()root::operator other()~root()~root()

좋은 웹페이지 즐겨찾기