Joh*_*ing 3 c++ function-pointers
假设我有这门课:
class Shape
{
public:
int value;
Shape(int v) : value(v) {};
void draw()
{
cout << "Drawn the element with id: " << value << endl;
}
};
Run Code Online (Sandbox Code Playgroud)
和以下代码(有效)
Shape *myShapeObject = new Shape(22);
void (Shape::*drawpntr)();
drawpntr = &Shape::draw;
(myShapeObject ->*drawpntr)();
Run Code Online (Sandbox Code Playgroud)
我有一个drawpntr函数指针指向类Shape的void-returns 0-arguments函数成员.
首先我想问一下:
drawpntr = &Shape::draw;
Run Code Online (Sandbox Code Playgroud)
该函数是一个成员函数,这里没有对象.. drawpntr接收什么地址?这个班级甚至不应该存在
我同意这条线
(myShapeObject->*drawpntr)();
Run Code Online (Sandbox Code Playgroud)
因为我明白我不能将函数指针解引用成员函数(没有对象 - >没有函数),但实际存储在drawpntr中的地址是什么?这个时候没有任何对象
drawpntr = &Shape::draw;
Run Code Online (Sandbox Code Playgroud)
line被调用..并且该类不应该作为实体存在
| 归档时间: |
|
| 查看次数: |
356 次 |
| 最近记录: |