سلام
این برنامه ای است که معدل نفر دوم را برمی گرداند.
اگه عدد 3 رو به عنوان عدد n وارد کنیم سازنده 6 مرتبه اجرا میشه. سه مرتبه ی اول که مسلما برای سه شی st و st1 و st2 و سه مرتبه ی بعدی برای شی 3st تابع enter که در حلقه for افتاده.
اما مخرب 9 مرتبه اجرا میشه. چرا؟
به ازای کدوم شی ها؟

  
#include"iostream.h"
#include"conio.h"
class student{
int stno;
char name[21];
float ave;
public:
student(){ ave=0; cout<<"sazande\n";}
void input(){ cin>>stno>>name>>ave; }
void print(){
cout<<stno<<name<<ave; }
float getave(){ return ave; }
~student(){
cout<<"mokhareb\n";} };
student enter();
int main(){
int n,i;
student st1,st2,st;
cin>>n;
for(i=0;i<n;i++){
st=enter();
cout<<"sery aval\n";
if(st.getave()>st1.getave()){
st2=st1;
st1=st;
}
else if(st.getave()>st2.getave())
st2=st;
}
st2.print();
return 0; }
student enter(){
student st3;
st3.input();
return st3;
}