/*
Macbook Air13.
10.5 420.432 297.123 1.31166e+06
C++ Primer Plus.
12.1 298 8.8 31731
#2:
Macbook Air13.
10.5 420.432 297.123 1.31166e+06
*/
#include <iostream>
using namespace std;
struct box {
char maker[40];
float height;
float width;
float length;
float volume;
};
template <typename BOX>
const BOX & Compare(BOX &a, BOX &b);
template <> const box & Compare(box &a, box &b);
void vol(box &a);
void show(const box &max);
int main() {
box notebook = {"Macbook Air13.", 10.5, 420.432, 297.123};
box book = {"C++ Primer Plus.", 12.1, 298, 8.8};
vol(notebook);
vol(book);
show(notebook);
show(book);
const box & max = Compare(notebook, book);
show(max);
}
void vol(box &a) {
a.volume = a.height * a.width * a.length;
}
template <typename BOX>
const BOX & Compare(BOX &a, BOX &b) {
cout << "#1:\n";
if (a.volume > b.volume)
return a;
else
return b;
}
template <> const box & Compare(box &a, box &b) {
cout << "#2:\n";
if (a.volume > b.volume)
return a;
else
return b;
}
void show(const box &max) {
cout << max.maker << '\n';
cout << max.height << " " << max.width << " " << max.length << " " << max.volume << "\n";
}
c++ primer plus 第八章《编程题8.7.8》
最新推荐文章于 2021-01-29 20:51:06 发布