1、类成员函数的初始化:
(1)按照声明顺序初始化,而不是按出现在初始化列表中的顺序;
2、区别:
(1)全局函数的参数个数,比局部函数要多一个;
(2)二者都可,返回元素、返回引用。
class test { public: test(int a, int b) { this->a = a; this->b = b; } test() { }
// 成员函数返回一个元素 test testAdd(test &t2) { test temp(this->a + t2.a, this->b + t2.b); return temp; } // 成员函数,返回一个引用,相当于返回自身 // this = > &t1,所以返回值 *this 相当于返回一个元素 test& testAdd2(test &t2) { this->a += t2.a; this->b += t2.b; return *this; } void print() { cout << "a: " << a << " b: " << b << endl; } private: int a; int b; }; test testAdd(test &t1, test &t2) { test t3; return t3; } void main() { test t1(1, 2); test t2(3, 4); test t3, t4; // 全局函数的方法 t3 = testAdd(t1, t2); // 成员变量的方法 t4 = t1.testAdd(t2); // 匿名对象 复制给 t4 test t5 = t1.testAdd(t2);//匿名对象,直接转换为 t5 t4.print(); t5.print(); system("pause"); return; }