#include<iostream> using namespace std; class numbered { private:static int seq; public: numbered(){ mysn = seq++; } numbered(const numbered&n){ mysn = seq++; } int mysn; }; int numbered::seq = 0; void f(const numbered &s) { cout << s.mysn << endl; } //void f(const numbered s) //{ // cout << s.mysn << endl; //} int main(){ numbered a, b = a, c = b; f(a); f(b); f(c);//结果为1,2,3。f里面参数传递的不是类对象而是类对象的引用,不再触发拷贝构造函数;传非引用时,numbered a调用一次构造函数,f(a)还要调用一次拷贝构造函数 system("pause"); return 0; }