void Test2(CBase &test)//引用传递,会修改原来的值,不会重新创建CBase副本,能提高效率,临时变量构造、复制、析构过程都将消耗时间。 { test.Test(); }
void Test1(CBase test)//这样传递非内部数据方式是值传递,即函数会产生临时变量复制数据副本,在函数体内修改不会影响原来的数据。而且这种方式会发生“切割” { test.Test(); //函数结束test会给释放内存,运行析构函数 }