对象数组 c++

来源:百度知道 编辑:UC知道 时间:2024/06/07 18:01:52
#include<iostream>
using namespace std;
class a
{public:
a(int xuehao,char *mingzi,float chengji);
void print(){cout<<num<<","<<name<<","<<score<<endl;}
void swap(a p[],int n);
private:
int num;
char name[7];
float score;
};
a::a(int xuehao,char *mingzi,float chengji)
{num=xuehao;
strcpy(name,mingzi);
score=chengji;
}
void a::swap(a p[],int n)
{int i,j;
for(i=0;i<n-1;i++)
for(j=0;j<n-1-i;j++)
if(p[j+1].score>p[j].score)
{p[6]=p[j];p[j]=p[j+1];p[j+1]=p[6]; }
}
void main()
{a tr[7]={a(1,"a1",78.0),a(2,"a2",56.7),a(3,"a3",99.9),a(4,"a4",77.8),a(5,"a5",87.6),a(6,"a6",78.5),a(0,'\0',0)};
for(int i=0;i<7;i++)
tr[i].print();
swap(tr,6);
for(int j=0;j<7;j++)
tr[j].print();
}

这个swap()是类的成员函数,不用直接使用,必须由对象调用!!!!

void a::swap(a p[],int n)
定义的类的成员函数,调用时是不是要用对象加个点来调用呀,你现在调用的库里面的

建议多看看面向对象方面的书,,,成员方法一定要通过对象来调用啊(static类的话用类名直接调用)。。。

swap需要通过对象调用,如tr[7].swap(tr,6);