首页 > 解决方案 > 将指针传递给类方法

问题描述

我正在学习 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();
}

标签: c++

解决方案


您需要通过引用传递指针。

bool search(int*& a)

没有这个,指针是按值传递的,你只是分配你传递的内容的副本。要分配您传递的实际对象/变量,您需要通过引用传递指针。

进一步阅读:按引用传递与按值传递有什么区别?


推荐阅读