operatoroverloadingconversion.cpp

来自「ThinkingC++中文版」· C++ 代码 · 共 30 行

CPP
30
字号
//: C12:OperatorOverloadingConversion.cpp
// From Thinking in C++, 2nd Edition
// Available at http://www.BruceEckel.com
// (c) Bruce Eckel 2000
// Copyright notice in Copyright.txt
class Three {
  int i;
public:
  Three(int ii = 0, int = 0) : i(ii) {}
};

class Four {
  int x;
public:
  Four(int xx) : x(xx) 	//把int类型转换成Four类型
  {} 
  operator Three() const// 把Four类型转换成Three类型,且自动执行
  { 
	  return Three(x); 
  }
};

void g(Three) {}

void main() {
  Four four(1);
  g(four);
  g(1);  // Calls Three(1,0)
} ///:~

⌨️ 快捷键说明

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