1.定義
2.特點
、
1.解釋第一句
#include<stdio.h>
using namespace std;
#include<string>
#include<map>
#include <iostream>
class print
{
public:void operator()(string s){cout << s << endl;}
};
int main()
{print print;print("hello world");return 0;
}
2.解釋第二句
可以有自己的狀態:指的是他和普通的函數不同,例如他可以統計自己調用了幾次。
也就是說,它可以向函數一樣被調用,但是卻擁有類的功能,他是類和函數的結合。
#include<stdio.h>
using namespace std;
#include<string>
#include<map>
#include <iostream>
class print
{
public:print(){this->count = 0;}void operator()(string s){cout << s << endl;this->count++;}int count;
};
int main()
{print print;print("hello world");print("hello world");print("hello world");print("hello world");print("hello world");cout << print.count << endl;return 0;
}
3.解釋第三句
#include<stdio.h>
using namespace std;
#include<string>
#include<map>
#include <iostream>
class print
{
public:print(){this->count = 0;}void operator()(string s){cout << s << endl;this->count++;}int count;
};
void test(print p, string s)
{p(s);
}
void test01()
{print print;test(print, "C++");
}
int main()
{test01();return 0;
}
函數對象不僅可以作為函數參數,還可以再調用的函數中去使用自己重載過的小括號
具體見
void test(print p, string s)
{
?? ?p(s);
}