都不完全正确,第二个更是错误a=b;其实是a.operator=(b); 第二个根本没有在函数中间做改变,所以不起作用第一个不完全正确是因为,返回值不是引用,所以要发生一次复制。所以最好是T& operator=(const T& rh)