関数を参照してポインターを渡したいので、渡されたポインターが指しているアドレスを実際に変更でき、この引数にデフォルト値を割り当てたいと思います。
このようなもの:
宣言で
void myFunc(SomeType* &var=NULL);
と定義:
void MyClass::myFunc(SomeType* &var){
if(var!=NULL)
(*var)=(*someOtherPointer);
if(someCondition)
var=NULL;
}
呼び出し先が1つの引数を使用して関数を呼び出すか、引数を使用せずに関数を呼び出すかを決定できるようにします。そして、彼が引数を渡すことを決定し、someConditionが成立した場合、渡されたポインターは後でNULLを指すようになります。
ただし、このようにしようとすると、次のようになります。
エラーC2440:'デフォルトの引数':'int'を'SomeType *&'に変換できません
助けてくれてありがとう!