
#include<iostream.h>
#include<string.h>
class student{
public:
student(char * nu = NULL,char * na= NULL,float s= 0)
set(char * nu,char * na,float s)
~student()
void show()
private:
char * number
char * name
float score
static int count
static float sum
static float ave
}
int student::count=0
float student::sum=0.0
float student::ave=0.0
void main()
{
float s
char link
char nu[20]
char na[20]
student h[10]
int i
cout<<"请输入Y,然后按Enter进行输入学生信息"<<endl
cout<<"输入N结束"<<endl
cin>>link
for (i = 0i <10 &&link=='Y'i ++)
{
cout<<"请输入学号,姓名,成绩:"<<endl
cin>>nu
cin>>na
cin>>s
h[i].set(nu,na,s)
h[i].show()
cout<<"请输入Y,然后按Enter进行输入学生信息"<<endl
cout<<"输入N结束"<<endl
cin>>link
}
}
student::student(char * nu,char * na,float s)
{
if (nu != NULL)
{
number=new char[strlen(nu)+1]
strcpy(number,nu)
}
else
number = NULL
if (na != NULL)
{
name=new char[strlen(na)+1]
strcpy(name,na)
}
else
name = NULL
score=s
count++
sum=sum+score
ave=sum/count
}
student::set(char * nu,char * na,float s)
{
if (name != NULL)
delete []name
if (number != NULL)
delete []number
sum=sum-score
number=new char[strlen(nu)+1]
strcpy(number,nu)
name=new char[strlen(na)+1]
strcpy(name,na)
score=s
sum=sum+score
ave=sum/count
}
student::~student()
{
delete []name
delete []number
count--
sum=sum-score
ave=sum/count
}
inline void student::show()
{
cout<<"学生信息如下:"<<endl
cout<<"学号:"<<number<<endl
cout<<"姓名:"<<name<<endl
cout<<"成绩:"<<score<<endl
cout<<"学生人数:"<<count<<endl
cout<<"总成绩:"<<sum<<endl
cout<<"平均成绩:"<<ave<<endl
}
要看static的效果要用两个文件。static修饰的函数只能在本文件内使用。
新建一个文件 add.c
内容:
void add(int add1,int add2)
{
return add1+add2
}
再新建一个文件test.c
内容:
#include<stdio.h>
extern int add(int add1,int add2)
void main()
{
int sum
sum=add(3,4)
printf("sum=%d",sum)
}
测试会发现输出了7,调用成功,。
如果add.c
的内容是:
static void add(int add1,int add2)
{
return add1+add2
}
后面加了关键字static后调用就会失败,,
因为加了static的函数只能在本文件中使用不能被别的文件引用
很简单。代码:intcount::n=0是将static变量的n初始化为0。代码count::test()调用了count类中的test函数,此函数中,n被用
for循环语句
自加了4次,所以会显示“4”。然后又建立了c1、c2两个count类的变量,这时,count类中的
构造函数
count()会执行2次,由于是
静态变量
,故n在4的基础上又加了2,是6,这时,有用了cout<
评论
0
0
加载更多
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)