c++类函数参数为类 *
时间: 2023-09-06 09:13:49 浏览: 104
c++参数解析类
在C++中,类函数参数为类指针时通常用于指针传递。指针传递是一种传递变量地址的方式,通过传递指针,函数可以直接访问和修改实参所在的内存空间。通过在函数定义和声明时使用"*"来修饰形参,表示这个变量是指针类型。而在函数调用时,使用"&"来修饰实参,表示将该变量的地址作为参数传入函数。
举个例子,如果我们有一个类成员函数`void Fun(int *ptr)`,其中`ptr`是一个指向int类型的指针参数。在函数体内部,我们可以使用`*ptr`来访问和修改指针所指向的内存空间。在主函数中,我们可以通过使用`&`来获取实参的地址,并将其作为参数传递给函数`Fun`。这样,函数内部对指针的修改也会影响到实参的值。
```c++
#include <iostream>
using namespace std;
class MyClass {
public:
void Fun(int *ptr) {
cout << "形参指针ptr的地址 = " << ptr << endl;
*ptr = 100; // 对形参指针所指向的内存空间进行修改
}
};
int main() {
MyClass obj;
int a = 10;
cout << "实参a的地址 = " << &a << endl;
cout << "实参a的值 = " << a << endl;
obj.Fun(&a);
cout << "实参a的值 = " << a << endl;
return 0;
}
```
在上述代码中,我们创建了一个名为`MyClass`的类,并定义了其中的成员函数`Fun`,该函数接受一个指向int类型的指针参数`ptr`。在主函数中,我们创建了一个整型变量`a`,并将其地址传递给`Fun`函数。在函数内部,我们修改了指针所指向的内存空间的值,这也导致了实参`a`的值被修改为100。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* *3* [C++函数参数中&和*的意义](https://blog.csdn.net/qq_34201858/article/details/104161539)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"]
[ .reference_list ]
阅读全文