[007]C++---写一个函数,返回它自己

题目:

      写一个函数,返回它自身,方法用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

暂略

 

posted @ 2013-03-07 10:14  依然冷月  阅读(535)  评论(0编辑  收藏  举报