面试题答案
一键面试-
类成员指针的概念:
- 在C++中,类成员指针是一种指向类的成员(包括成员变量和成员函数)的指针。与普通指针不同,类成员指针不直接指向内存地址,因为类成员不是独立存储在内存中的,而是与类的对象相关联。
- 对于成员变量指针,它指向类的成员变量在对象中的偏移量。对于成员函数指针,它指向类成员函数的入口点,但调用时需要通过特定的对象来确定上下文。
-
示例代码:
#include <iostream>
class MyClass {
public:
int data;
void printData() {
std::cout << "Data: " << data << std::endl;
}
};
int main() {
MyClass obj;
obj.data = 42;
// 成员变量指针
int MyClass::*dataPtr = &MyClass::data;
std::cout << "Accessed data: " << obj.*dataPtr << std::endl;
// 成员函数指针
void (MyClass::*funcPtr)() = &MyClass::printData;
(obj.*funcPtr)();
return 0;
}
在上述代码中:
- 首先定义了
MyClass
类,它有一个成员变量data
和一个成员函数printData
。 - 在
main
函数中,创建了MyClass
的对象obj
并初始化了data
。 - 然后定义了指向
data
的成员变量指针dataPtr
,并通过obj.*dataPtr
访问了data
的值。 - 接着定义了指向
printData
的成员函数指针funcPtr
,并通过(obj.*funcPtr)()
调用了该成员函数。