以下は、私が直面している問題の小規模な例です。以下の例では、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;
}