编写一个有关股票的程序,其中有两个类:一个是深圳类shen_stock,另一个是上海类shang_stock。类中有三项私有数据成员:普通股票个数general、ST股票个数st和PT股票个数pt,每一个类分别有自己的友元函数来计算并显示深圳或上海的股票总数(三项的和)。两个类还共用一个count(),用来计算深圳和上海总共有多少股票并输出。
时间: 2023-06-01 22:02:57 浏览: 189
```
#include <iostream>
using namespace std;
class shen_stock; // 前置声明
class shang_stock {
private:
int general; // 普通股票个数
int st; // ST股票个数
int pt; // PT股票个数
public:
shang_stock(int g = 0, int s = 0, int p = 0) : general(g), st(s), pt(p) {}
friend void show_total(shang_stock s); // 友元函数:显示上海股票总数
friend int count(shang_stock s, shen_stock ss); // 友元函数:计算深圳和上海总共有多少股票
};
class shen_stock {
private:
int general; // 普通股票个数
int st; // ST股票个数
int pt; // PT股票个数
public:
shen_stock(int g = 0, int s = 0, int p = 0) : general(g), st(s), pt(p) {}
friend void show_total(shen_stock s); // 友元函数:显示深圳股票总数
friend int count(shang_stock s, shen_stock ss); // 友元函数:计算深圳和上海总共有多少股票
};
void show_total(shang_stock s) {
int total = s.general + s.st + s.pt;
cout << "上海股票总数:" << total << endl;
}
void show_total(shen_stock s) {
int total = s.general + s.st + s.pt;
cout << "深圳股票总数:" << total << endl;
}
int count(shang_stock s, shen_stock ss) {
int total = s.general + s.st + s.pt + ss.general + ss.st + ss.pt;
cout << "深圳和上海总共有股票:" << total << endl;
return total;
}
int main() {
shang_stock shang(100, 50, 20);
shen_stock shen(80, 60, 10);
show_total(shang);
show_total(shen);
count(shang, shen);
return 0;
}
```
阅读全文