C++ Primer(第5版) 练习 13.17
练习 13.17 分别编写前三题中所描述的numbered和f,验证你是否正确预测了输出结果。
环境:Linux Ubuntu(云服务器)
工具:vim
代码块
cpp
/*************************************************************************
> File Name: ex13.17.cpp
> Author:
> Mail:
> Created Time: Tue 23 Apr 2024 09:48:13 AM CST
************************************************************************/
#include<iostream>
using namespace std;
static int nextsn = 1;
class numbered {
public:
int mysn;
numbered() : mysn(nextsn++) { } // Unique serial number for each object
numbered(const numbered &n) : mysn(nextsn++) { } // Copy creates a new unique id
numbered &operator= (const numbered &n) {
mysn = nextsn++; // Ensure unique id on assignment
return *this;
}
};
void f1(numbered s) {
cout << s.mysn << endl;
}
void f2(const numbered &s) {
cout << s.mysn << endl;
}
int main() {
numbered a, b = a, c = b;
f1(a); f1(b); f1(c);
f2(a); f2(b); f2(c);
return 0;
}