原题如下:
分析程序清单1-4中的类。函数main()输出的结果如下所示:
The atomic weight:196.9665
The atomic number:79
Price per ounce:450.75
应用本章中所学到的规则, 对程序中的抽象及相应的类进行评价。(标识符Pb和Au是化学符号, 分别表示铅和金, 这两个名字来自拉丁文plumbum和aurum)
程序清单1-4 类Pb和类Au
#include <iostream>
using namespace std;
class Pb
{
private:
unsigned atomicNumber;
float atomicWeight;
float pricePerOunce;
public:
Pb(void)
{
atomicNumber = 82;
atomicWeight = 207.2;
pricePerOunce = 0.01;
}
unsigned getNumber(void) { return atomicNumber; }
float getWeight(void) { return atomicWeight; }
float getPrice(void) { return pricePerOunce; }
void output(void)
{
cout << "The atomic weight: " << atomicWeight << "\n";
cout << "The atomic number: " << atomicNumber << "\n";
cout << "Price per ounce: " << pricePerOunce << "\n\n";
}
};
class Au
{
private:
unsigned atomicNumber;
float atomicWeight;
float pricePerOunce;
public:
Au(void)
{
atomicNumber = 79;
atomicWeight = 196.9665;
pricePerOunce = 450.75;
}
Au(Pb& lead)
{
atomicWeight = lead.getWeight() - 10.2335;
atomicNumber = lead.getNumber() - 3;
pricePerOunce = 450.75;
}
void output(void)
{
cout << "The atomic weight: " << atomicWeight << "\n";
cout << "The atomic number: " << atomicNumber << "\n";
cout << "Price per ounce: " << pricePerOunce << "\n\n";
}
};
main()
{
Pb myLead;
Au myGold = myLead;
myGold.output();
}