以下是我面临的问题的一个小规模示例。在下面的示例中,我使用 int 指针,但在我自己的代码中,我实际上使用的是指向另一个类的指针。
我确实需要/希望能够将多个指针传递给同一个方法,并且我真的不想为每个指针编写一个特定的方法。当我运行代码时,当然,我没有得到预期的结果。
我想我已经缩小了问题的范围,但不知道如何解决它。由于 C++ 中的所有内容都是按值传递的,因此我传递的指针需要通过引用传递。我确实尝试在以下方法中更改我的方法以通过引用调用:
int** getIntPointer() {return &p1;}
void initializeP1(int **&ip,int n)
和void initializeP1(int **ip,int n)
但似乎没有任何效果。
有谁知道如何解决这个问题?
谢谢
#include <iostream>
using namespace std;
class Test {
private:
int *p1;
int *p2;
int sizeP1;
int sizeP2;
public:
int** getIntPointer() {return &p1;}
void initializeP1(int **&ip,int n){
sizeP1=n;
*ip=new int[n];
for(int i=0;i<n;i++)
*ip[i]=i;
}
void printP1() {
for(int i=0;i<sizeP1;i++)
cout<<p1[i]<<" ";
}
};
int main() {
Test t;
int** p = t.getIntPointer();
t.initializeP1(*&p,10);
t.printP1();
return 0;
}