差別就是一個本身不被改變,而另一本身也在改變,
在開發時候都會用到,
這裡做下記錄
#include <iostream>
using namespace std;
class Test
{
public:
Test(int a)
{
num = a;
}
void setnum(int a)
{
num =a;
}
int getnum()
{
return num;
}
private:
int num;
};
void add(Test t)
{
t.setnum(t.getnum()+t.getnum());
cout<<"\nf num value add:";
cout<<t.getnum()<<endl;
}
void add1(Test *t)
{
t->setnum(t->getnum()+t->getnum());
cout<<"\nf num value add:";
cout<<t->getnum()<<endl;
}
int main()
{
cout << "Hello world!" << endl;
Test tt(100);
add(tt);
cout<<"object tt not chaange is main:";
cout<<tt.getnum()<<endl;
Test tt1(100);
add1(&tt1);
cout<<"object tt not chaange is main:";
cout<<tt1.getnum()<<endl;
return 0;
}
<img src="https://img-blog.csdn.net/20160815152346411?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />