C++问题 为什么会这样 简单些说明

来源:百度知道 编辑:UC知道 时间:2024/05/14 00:04:38
#include<iostream.h>

void main()
{
book x,y,*head,*p;
x.num=10;
x.price=3.2;
y.num=11;
y.price=3.6;
head=&x;
x.next=&y;
y.next=NULL;
p=head;
do
{
cout<<p->num<<p->price<<endl;
p =p->next;
}while(NULL!=p);
}
class book
{
public:
int num;
float price;
book *next;
};
为什么这个不能用,而把class掉到main函数之前就可以了
#include<iostream.h>
class book
{
public:
int num;
float price;
book *next;
};

void main()
{
book x,y,*head,*p;
x.num=10;
x.price=3.2;
y.num=11;
y.price=3.6;
head=&x;
x.next=&y;
y.next=NULL;
p=head;
do
{
cout<<p->num<<p->price<<endl;
p =p->next;
}while(NULL!=p);
}

首先你得声明类才能调用类.
你前一个程序形式,编译器根本不知道这些东西指啥
x.num=10;
x.price=3.2;
y.num=11;
y.price=3.6;
根本不知道x.num等这些东西指什么所以会出错,在C,或者是C++等中用什么东西都要事先声明的.

编辑器是按照一定规则来执行的,所以第一个编译器还没有执行类,他不知道怎么来处理。用老外常说的话就是编译器不够智能!