consttemporary.cpp

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

CPP
73
字号
//: C08:ConstTemporary.cpp
// From Thinking in C++, 2nd Edition
// Available at http://www.BruceEckel.com
// (c) Bruce Eckel 2000
// Copyright notice in Copyright.txt
// Temporaries are const
/*
class X 
{
};

X f() 
{ 
	return X(); 
} // Return by value

void g1(X&) 
{
} // Pass by non-const reference

void g2(const X&) 
{
} // Pass by const reference

void main() 
{
  
  g1(f());	 // Error: const temporary created by f():

  
  g2(f());	  // OK: g2 takes a const reference:

} ///:~
*/
class X 
{
private:
	int i;
public:
	int get() const
	{
		return i;
	}
	void set()
	{
		i=0;
	}
};

X f() 
{ 
	return X(); 
} // Return by value

void g1(X& a) 
{
	a.set();
} // Pass by non-const reference

void g2(const X&) 
{
} // Pass by const reference

void main() 
{
  
  g1(f());	 // Error: const temporary created by f():

  
  g2(f());	  // OK: g2 takes a const reference:

} ///:~

⌨️ 快捷键说明

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