C++类类型指针数组

来源:百度知道 编辑:UC知道 时间:2024/06/16 18:10:52
#include<iostream.h>
class pp
{int i;};
void creat()
{
int m=5;
pp *P[m];
for(int i=0;i<5;i++)
{
P[i]=new pp;
}
}
void main()
{
creat();
}
提示错误:
C:\Program Files\Microsoft Visual Studio\MyProjects\2\2.cpp(7) : error C2057: expected constant expression
C:\Program Files\Microsoft Visual Studio\MyProjects\2\2.cpp(7) : error C2466: cannot allocate an array of constant size 0
C:\Program Files\Microsoft Visual Studio\MyProjects\2\2.cpp(7) : error C2133: 'P' : unknown size
Error executing cl.exe.
程序若改为:
#include<iostream.h>
class pp
{int i;};
void creat()
{

pp *P[5];//常数
for(int i=0;i<5;i++)
{
P[i]=new pp;
}
}
void main()
{
creat();
}
无错

/*能不能说的具体一点呢?请问同学是不懂用法呢还是需要一个例子来理解?

其实类指针数组就是指向类的指针的一个指针,是二级指针。

给写一个例子吧*/

#include<iostream>

using namespace std;

class CStudent

{

    char *m_name;

    int m_age;

public:

CStudent(char *name="",int age=0);

void Displayinfo() const;

};//简单的定义一个学生类


CStudent::CStudent(char *name,int age)

{

m_name=new char[strlen(name)+1];

strcpy(m_name,name);

m_age=age;

}


void CStudent::Displayinfo() const

{

cout<<m_name<<"  "<<m_age<<endl;

}


int main()

{

int i,num;

CStudent Student1("同学1",18),Student2("同学2",19),Student3("同学3",20);

    CStudent ** aStudent;//申请一个二级指针

cin>>num;

    aStudent=new CStudent *[num];

aStudent[0]=&Student1;

aStudent[1]=