将指针传递到类方法
Passing pointer into Class method
我正在学习C++,但指针有问题。 我想将指针传递到我的方法中并为其分配一个新值。但是调用该方法后我的指针是 0。我做错了什么?谢谢
#include <iostream>
using namespace std;
class MyObject
{
public:
bool search(int* a)
{
int* test = new int(23);
a = test;
return true;
}
};
MyObject* obj;
void search()
{
int* test = NULL;
obj->search(test);
cout << test << endl;
}
int main(int argc, char *argv[])
{
obj = new MyObject();
search();
}
您需要通过引用传递指针。
bool search(int*& a)
如果没有这个,指针是按值传递的,你只分配你传递的内容的副本。要分配您传递的实际对象/变量,您需要通过引用传递指针。
进一步阅读:按引用传递与按值传递有什么区别?
a
是一个局部变量,如果在search
方法执行期间设置它的值,它不会对自由search
函数中的test
变量产生任何影响,因为a
只是test
的副本。
您应该通过引用传递a
:
bool search(int *&a) {
int* test = new int(23);
a = test;
return true;
}
指针是通过值而不是引用传递的。这意味着局部变量test
的值没有改变。
而是做bool search(int*& a)
这会将引用传递给方法,该方法将更新调用函数中的局部变量。
相关文章:
- 如何访问由共享指针保存的类方法?
- 我无法使用C++指针指向类方法返回的 std::vector
- 如何在成为指向基类的指针后保留对子类方法的使用?
- 将一个类的方法指针存储到另一个类中
- 如果类"A"具有指向另一个类的指针,则"B" A 可以访问 B 类公共方法
- 类方法返回指向具有模板的类成员的指针
- 指向类方法调用的指针
- 在类方法中使用 "this" 指针是否是一种好的做法?
- C++ - 类方法函数指针unordered_map的初始化器列表
- 如何定义和设置指向模板类方法的功能指针
- 如何在没有虚拟方法的类dynamic_cast指针?
- 将指针传递到类方法
- C++ - 基类函数指针调用的替代方法
- 将const指针(EVP_MD)保存到变量中,以将其重新使用为类方法(HMAC)
- 如何调用返回类方法指针的类方法
- C++;类方法指针;λ;将 lambda 作为成员函数指针传递;
- 尝试获取类方法指针时出现E_NOINTERFACE
- 指向方法父参数c++的子类方法指针
- 给出一个闭包作为"类方法指针"?
- 静态类方法指针数组的正确语法