整数変数とポインター変数を持つクラスを作成しました。object を作成した後、それを関数に渡しました。関数を返した後でも、プログラムは例外をスローしていません
#include"iostream"
using namespace std;
class A
{
public :
int i;
char *c;
void show();
};
void func(A obj);
int main()
{
A a;
a.i = 10;
a.c = "string";
cout << " Before Fun " << endl;
a.show();
cout << " Going To Call func " << endl;
func(a);
cout << " After func " << endl;
a.show();
return 0;
}
void A::show()
{
cout << " The valuses in Object are " << i << '\t' << c << endl;
}
void func(A aa)
{
cout << " The valuses in Object are " << aa.i << '\t' << aa.c << endl;
}
The Func では、オブジェクト a (main から) を渡し、aa (func のスタック) にコピーされます。したがって、func から戻った後、show を呼び出すと (ポインター c は a の null になります)、例外が発生しますが、発生していません。コピーコンストラクターの要件を証明するのを手伝ってください