关于对象数组的问题

来源:百度知道 编辑:UC知道 时间:2024/05/26 23:19:10
class Student
{
.....
};
...
cin>>n;
Student s[n];
上面这样定义不行么,编译时通不过。说是"expected constant expression".为什么

cin>>n;
Student s[n];

明显这样定义一个数组就不行,先不说Student的实现如何.
定义数组时,[]内的参数必须是确定的!!

数组的大小必须是一个常量,无论是对象,还是int char这些基本类型都是一样的,你要实现试试
int i,n;
Student **s;
cin>>n;
for(i=0;i<n;i++)
{
s[i]=new Student();
}
调用就是*s[i]了,用完要记得释放喔
但这样做不好,编译器会给警告

n 要是个常量