#include <stdio.h>
class A {
public:
int getX() { return x; }
private:
int x;
};
class B {
public:
A& getA() {return a;}
private:
A a;
};
int main() {
B* b = new B;
if(b) {
b->getA().setX(10);
printf("\n Value is %p",&(b->getA()));
b->getA().setX(5);
}
return 0;
}
上記のコードでは、getA()がNULLポインタまたは無効なポインタを返すことがある場合があります。はいの場合、有効なチェックは何ですか?他のクラスの中で参照によってクラスオブジェクトを返す
あなたは 'stdio'と' printf'の代わりに 'iostream'と' cout'を使用しています –
ヌルチェックは 'new B'の結果です。これはnullを返さず、非常に古いコンパイラを使用していない限り例外をスローします。 –
参照はnullになることはありません(あなたのプログラムが既に未定義の動作を引き起こしていない限り) –