C++習(xí)題與解析(友元-02)

字號(hào):

05.設(shè)計(jì)一個(gè)類Sample,它有兩個(gè)私有成員A[]和n(A中元素個(gè)數(shù)),將對(duì)A[]中數(shù)據(jù)進(jìn)行各種排序的函數(shù)放入到一個(gè)友元類process中。
    解:
    process類不包含任何數(shù)據(jù)成員,包含的公共成員函數(shù)如下:
    getdata(Sample &s); 用于獲取對(duì)象s的數(shù)據(jù)
    insertsort(Sample &s); 用于進(jìn)行插入排序
    shellsort(Sample &s); 用于進(jìn)行希爾排序
    bubblesort(Sample &s); 用于進(jìn)行冒泡排序
    quicksort(Sample &s); 用于進(jìn)行快速排序
    selectsort(Sample &s); 用于進(jìn)行選擇排序
    disp(Sample &s); 用于輸出數(shù)據(jù)
    本題程序如下:
    #include
    #define Max 100
    class Sample
    {
    int A[Max];
    int n;
    friend class process;
    public:
    Sample(){n=0;}
    };
    class process
    {
    void qsort(Sample &s,int l,int h);
    // 私有成員,由quicksort()成員調(diào)用
    public:
    void getdata(Sample &s);
    void insertsort(Sample &s);
    void shellsort(Sample &s);
    void bubblesort(Sample &s);
    void quicksort(Sample &s);
    void selectsort(Sample &s);
    void disp(Sample &s);
    };
    void process::getdata(Sample &s)
    {
    int i;
    cout<<"元素個(gè)數(shù):";
    cin>>s.n;
    for(i=0;i    {
    cout<<"輸入第"<    cin>>s.A[i];
    }
    }