复制
收藏
提问
简洁
用C++设计一个类Sample,它有两个私有成员A[]和n(A中元素个数),将对A[]中数据进行各种排序的函数放入到一个友元类process中
0秒前
全网
文档
学术
百科
知识库
回答简洁模式
深入研究一些
概述
设计一个类 Sample
,包含两个私有成员 A[]
和 n
,以及一个友元类 process
用于实现对 A[]
中数据的排序。
类设计
- 要点总结描述1:定义类
Sample
及其私有成员。 - 要点总结描述2:定义友元类
process
并实现排序函数。
类定义
#include <iostream>
#include <algorithm> // 用于 std::sort
class Sample {
private:
int* A; // 私有成员 A[]
int n; // 私有成员 n,A 中元素个数
public:
Sample(int size) : n(size), A(new int[size]) {}
~Sample() { delete[] A; }
friend class process; // 声明 process 为友元类
};
class process {
public:
void sortAscending(Sample& s) {
std::sort(s.A, s.A + s.n); // 升序排序
}
void sortDescending(Sample& s) {
std::sort(s.A, s.A + s.n, std::greater<int>()); // 降序排序
}
};
使用示例
int main() {
Sample s(5);
for (int i = 0; i < s.n; ++i) {
s.A[i] = i + 1; // 初始化数组
}
process p;
p.sortAscending(s); // 对 s.A 进行升序排序
for (int i = 0; i < s.n; ++i) {
std::cout << s.A[i] << " "; // 输出排序后的结果
}
std::cout << std::endl;
return 0;
}
要点说明
你觉得结果怎么样?