C++中値転送、参照転送、ポインタ転送

7538 ワード


  
#include < iostream >
using namespace std;

class tr{
private :
int i;
public :
tr(
int n)
{
i
= n;
}
void set ( int n)
{
i
= n;
}
int get ()
{
return i;
}
};
//
#if 1
void sqr(tr & ob)
{
ob.
set (ob. get () * ob. get ());
cout
<< " ob.i= " << ob. get () << endl;

}
#endif

//
#if 0
void sqr(tr ob)
{
ob.
set (ob. get () * ob. get ());
cout
<< " ob.i= " << ob. get () << endl;

}
#endif

//
#if 0
#define POINT
void sqr(tr * ob)
{

ob
-> set (ob -> get () * ob -> get ());
cout
<< " ob.i= " << ob -> get () << endl;

}
#endif
int main()
{
tr obj(
10 ); // ,
#ifdef POINT
sqr(
& obj);
#else
sqr(obj);
#endif
cout
<< " obj.i= " << obj. get () << endl;

return 0 ;
}