题目:
写一个函数,返回它自身,方法用C或者C++即可。
方法一:
用C++中仿函数的方法,来实现返回自身的引用。
1 #include<iostream> 2 using namespace std; 3 4 class Fang { 5 public: 6 Fang& operator()(){ 7 cout << "a" <<endl; 8 return *this; 9 } 10 }; 11 12 int main() { 13 Fang F; 14 F()()(); 15 F.operator()()(); 16 17 system("pause"); 18 }
我们可以选择显示显示或者隐式调用,都可以。
另外,用仿函数还可以写成这种:
1 #include<iostream> 2 using namespace std; 3 4 class Fang { 5 public: 6 Fang& operator()(Fang &a){ 7 cout << "a" <<endl; 8 return *this; 9 } 10 }; 11 12 int main() { 13 Fang F; 14 F.operator()(F); 15 F((((F)))); 16 F(F(F.operator()((F)))); 17 18 system("pause"); 19 }
上述的两份代码中,第6行都需要返回引用,如果不是的话,则在调用时返回就是Fang的拷贝。
方法二:S-Expression
暂略