c++ - 将指针传递给类方法
问题描述
我正在学习 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)
没有这个,指针是按值传递的,你只是分配你传递的内容的副本。要分配您传递的实际对象/变量,您需要通过引用传递指针。
进一步阅读:按引用传递与按值传递有什么区别?
推荐阅读
- java - 如何选择并复制(Ctrl + C)jLabels 的文本?
- asp.net-core - 使用 systemd 有条件地选择日志提供程序
- c# - 用于硒测试的独立铬
- php - PHP DOM 将子元素附加到根
- java - 为什么 Spring Boot pom.xml 文件有问题?即使只有 Spring Web Dependency
- php - 试图获取非对象的属性“标题”(查看:/Applications/MAMP/htdocs/LARAVEL/LaravelDesdeCero/laravel/resources/views/portfolio.blade.php)
- r - 改变 ifelse 以替换 r 中的值
- ios - Xcode:Objective-C 从命令行构建和运行
- mapreduce - Apache Nutch 1.16 Fetcher 减速器?
- postgresql - PostgreSQL - 如何将角色名称作为参数传递给过程?