C++能不能支持Java和ObjC的反射?
本文以一个问句开始,尝试在C++中实现Java和ObjC的反射机制。...
分类:
编程语言 时间:
2014-06-19 12:03:08
阅读次数:
244
1、函数指针使用示例typedef void (*FPFunc) ();void func() {}int main(){ FPFunc pFunc = func; pFunc();}2、类成员函数指针使用示例class C {public: typedef void (C::*FP...
分类:
其他好文 时间:
2014-06-18 21:11:21
阅读次数:
162
函数指针是一种非常好的类型。因此,可以编写一个函数,它的一个参数是函数指针。然后,在(外部)函数使用其函数指针参数时,就间接地调用在调用函数时对应参数指向的函数。
由于指针在不同的情况下可以指向不同的函数,因此允许调用程序确定要从外部函数中调用哪个函数。
在用函数指针类型的参数调用函数时,参数可以只包含函数地址的相应类型的指针。还可以把函数名作为参数,显示传送函数。作为参数传送给另一个函数的函...
分类:
编程语言 时间:
2014-06-18 07:29:09
阅读次数:
178
函数指针:
函数指针必须包含要调用的函数的内存地址,为了工作正确,指针还必须包含其他信息,即指针所指向的函数的参数列表中的参数类型以及返回类型。因此,在声明函数指针时,必须指定该指针可以指向的函数的参数类型和返回类型,以及指针名。
函数指针的一般形式如下:
返回类型(*指针明名)(参数类型列表);
注意:指针名上的括号是必不可少的,否则*就会与返回类型结合,就成了一个函数原型了。
示例:...
分类:
编程语言 时间:
2014-06-18 07:24:18
阅读次数:
203
声明一个函数可以用:1. void function01(void);2. void (*function02)(void);第2个是用了函数指针,使用函数指针有两个好处:1. 是可以动态设置内容,有灵活性。如:排序的qsort中需要传入比较的函数指针,来确定排序是从大到小还是从小到大;2. 是可以...
分类:
其他好文 时间:
2014-06-17 20:31:27
阅读次数:
171
#include
using namespace std;
void a(){
cout<<"a\n";
}
void b(){
cout<<"b\n";
}
int c(int* val){
cout<<"c "<<val<<" "<<*val<<endl;
return *val;
}
void main()
{
cout<<"\n\nmain\n";
cout<<"...
分类:
其他好文 时间:
2014-06-16 21:36:06
阅读次数:
281
我们能否写一个这样的函数:
可以对任何类型数据排序
任何人在使用该函数不需要修改该函数代码(即:用户可以不必看到函数源 码,只会调用就行)
思考:
用户需要排序的数据的类型千变万化,可能是int型,也有可能是自定义的结构体类型,各种类型的大小比较规则是不一样的,这样看来实现一个这样全能的排序函数似乎不可能。
但具体需要排序的类型应按照什么规则确定大小只有使用该函数的用户最清...
分类:
其他好文 时间:
2014-06-16 19:16:27
阅读次数:
184
在了解回调函数之前,你应该先去了解函数指针!!!
先看一个回调函数的例子:
#include
#include
void Call(void (*fp)(int) ,int x) //Call为调用者,fp为指向回调函数的函数指针
{
fp(x);
}
void CallBackFun1(int x) //CallBackFun1为回调函数
{
printf("回调函数Ca...
分类:
其他好文 时间:
2014-06-10 06:48:19
阅读次数:
171
定义:#include std::function
myPrintFunction;函数指针void directPrint(const QString &msg){
qDebug()<<"direct print:"<<msg;}myPrintFunction =
directPrint;lamb...
分类:
其他好文 时间:
2014-06-09 17:41:16
阅读次数:
267