c++用对象指针访问函数
时间: 2023-12-17 19:01:57 浏览: 26
要使用对象指针访问函数,需要先创建对象指针,然后使用箭头(->)符号来调用对象的成员函数。下面是一个示例代码:
```c++
class MyClass {
public:
void myFunction() {
std::cout << "Hello World!" << std::endl;
}
};
int main() {
MyClass* objPtr = new MyClass(); // 创建对象指针
objPtr->myFunction(); // 使用箭头符号调用对象的成员函数
delete objPtr; // 释放对象指针所指向的内存
return 0;
}
```
在上面的示例代码中,我们创建了一个名为 `MyClass` 的类,并在其中定义了一个名为 `myFunction` 的成员函数。然后在 `main` 函数中,我们创建了一个对象指针 `objPtr`,并使用箭头符号调用了该对象的成员函数 `myFunction`。最后,我们释放了对象指针所指向的内存,以避免内存泄漏。
相关问题
C++一个指针默认访问对象的虚函数
在C++中,一个指向对象的指针默认访问的是该对象的虚函数。这是由于C++中的虚函数是通过虚函数表来实现的,每个包含虚函数的对象都有一个指向其虚函数表的指针。当一个对象被创建时,其虚函数表被初始化。当通过一个指向对象的指针调用一个虚函数时,实际上是通过该指针所指向的对象的虚函数表来调用正确的虚函数。
如果一个指针指向一个派生类对象,那么通过该指针访问的虚函数将是该派生类实现的虚函数。如果一个指针指向一个基类对象,那么通过该指针访问的虚函数将是其派生类的实现,因为派生类覆盖了基类的虚函数,同时派生类的虚函数表也包含了其继承而来的基类的虚函数。
在C++对象中使用函数指针
可以用来实现回调函数或者动态函数调用。在C语言中,函数名是一个指向函数代码起始地址的指针,可以将这个指针作为函数参数,传递给其他函数,让其在适当的时候调用该函数。这个指向函数的指针就是函数指针。它可以通过类型定义来声明,例如:
```
typedef int (*pFunc)(int, int);
```
这个类型定义表示 pFunc 是一个指向以两个 int 类型参数并返回 int 类型值的函数指针。示例代码如下:
```
int add(int a, int b) {
return a+b;
}
int sub(int a, int b) {
return a-b;
}
void doCalculation(int a, int b, pFunc func) {
int result = (*func)(a, b);
printf("The result is: %d\n", result);
}
int main() {
pFunc pAdd = add;
pFunc pSub = sub;
doCalculation(2, 3, pAdd);
doCalculation(10, 5, pSub);
return 0;
}
```
在这个示例中,我们定义了两个函数 add 和 sub,并且声明了一个类型为 pFunc 的函数指针。我们通过将 add 和 sub 函数的指针传递给 doCalculation 函数来实现函数指针的调用。在 doCalculation 函数中,我们使用了 (*func) 来调用传入的函数指针。