定义一个可指向类的非static但是const的函数的函数指针
2009-08-09 21:52
239 查看
//例
class A
{
public:
int func(int x) const;
int example();
};
int A::example()
{
int (*p)(int x);
p = func; //error does not match
return 0;
}
//请问该如何定义一个p才能指向func呢?
发信人: dp2 (死生契阔 与子成说), 信区: CPlusPlus
标 题: Re: 如何定义一个可指向类的非static但是const的函数的函数指针
发信站: 水木社区 (Sun Aug 9 19:43:01 2009), 站内
#include <iostream>
using namespace std;
class A
{
public:
int func(int x) const
{
cout << x << endl;
return 0;
}
int example();
};
int A::example()
{
int (A::*p)(int x) const;
p = &A::func; //error does not match
A* another = new A;
(another->*p)(0);
return 0;
}
int main()
{
A a;
a.example();
return 0;
}
逻辑推理就可以知道需要
考虑非const的情况
int (*p)(int x);
如果不加A::,编译器怎么会知道你是想声明什么?
实际上,A::并不是使用A中的一个名称,而是和后面的*连起来用的,表明是A的一个成员指针
class A
{
public:
int func(int x) const;
int example();
};
int A::example()
{
int (*p)(int x);
p = func; //error does not match
return 0;
}
//请问该如何定义一个p才能指向func呢?
发信人: dp2 (死生契阔 与子成说), 信区: CPlusPlus
标 题: Re: 如何定义一个可指向类的非static但是const的函数的函数指针
发信站: 水木社区 (Sun Aug 9 19:43:01 2009), 站内
#include <iostream>
using namespace std;
class A
{
public:
int func(int x) const
{
cout << x << endl;
return 0;
}
int example();
};
int A::example()
{
int (A::*p)(int x) const;
p = &A::func; //error does not match
A* another = new A;
(another->*p)(0);
return 0;
}
int main()
{
A a;
a.example();
return 0;
}
逻辑推理就可以知道需要
考虑非const的情况
int (*p)(int x);
如果不加A::,编译器怎么会知道你是想声明什么?
实际上,A::并不是使用A中的一个名称,而是和后面的*连起来用的,表明是A的一个成员指针
相关文章推荐
- 定义一个含10个函数指针的数组,指向的函数带一个整形参数
- 用变量a给出下面的定义:一个有10个指针的数组,该指针指向一个函数,该函数有一个整形参数并返回一个整型数
- 定义一个函数指针,指向的函数有两个int形参并且返回一个函数指针,返回的指针指向一个有一个int形参且返回int的函数?
- C语言学习9: malloc动态内存存储,动态内存分配去空格字符增长版,动态内存分配去符号incr增长版,型参和返回值都是int型的函数的指针,main函数的地址也可以用指针指向,typedef定义函数指针,函数定义与嵌套的作用,返回函数指针类型,const作用
- C语言技巧--在结构体中使用函数例子(定义一个指向函数的指针)
- Objective-C定义一个指向函数的指针、直接访问成员变量
- 定义一个函数指针类型
- 指向函数的指针定义与使用
- 定义指向类成员函数和类静态成员函数的指针
- 【c语言】编写一个函数new,对n个字符开辟连续的存储空间,此函数应返回一个指针(地址),指向字符串开始的空间
- 编写一个函数new,对n个字符开辟连续的存储空间,此函数应返回一个指针(地址),指向字符串开始的空间。new(n)表示分配n个字节的内存空间。
- 外部定义了一个数组,在函数内用指针对其操作
- 返回指向函数的指针的函数 的一个例子
- 多态继承情况下,有一个基类指针指向派生类对象,如何用它调用基类的虚函数?
- 指针与字符串:(const)char *p2 = "lmj";定义的是一个字符串常量!符串常量,正因为是常量,所以它内部的字符是不允许修改的。
- 已定义的函数有返回值,函数调用可以作为一个函数的实参,但是不能作为形参
- 关于函数指针的理解(指向的函数返回值又是另外一个函数指针)
- 建立一个对象数组,内放5个学生数据(学号、成绩),设立一个函数max,用指向对象的指针作函数参数,在max函数中找出5个学生中成绩最高者,并从输出学号。
- 定义一个一维指针指向二维数组并打印
- 【LVL1_5_c】【课后练习】【4】 定义一个函数,交换两个数的值。(使用指针)