Turbo C++ 编译错误 "too many types in declaration"
Turbo C++ compile error "too many types in declaration"
每当我编译这个程序时,我都会收到一个错误 "Too many types in decleration on line 13"。我没有看到任何可能的语法错误,但我仍然面临这个问题。
#include<iostream.h>
#include<conio.h>
class currency
{
private:
int rupee,paise;
int total;
public:
void getdata(int r,int p);
void display();
}
void currency::getdata(int r, int p){
rupee=r;
paise=p;
total=r*100+p;
}
void currency::display(){
cout<<rupee<<" Rupees"<<" and "<<paise<<"Paise"<<endl;
cout<<"Converted value="<<total;
}
int main(){
currency c;
c.getdata(5,25);
c.display();
getch();
return 0;
}
需要分号来终止class定义:
} ; // semicolon needed here.
void currency::getdata( ...
否则,编译器看起来像这样:
class blahblah {int etc, etc1; int etc2; } void currency::getdata (...
我猜测,根本问题是 class currency
正文后缺少分号。
回想一下在 C/C++ 中,您可以将对象定义为 class 或结构定义的一部分,如下所示:
struct foo
{
int bar;
} FooObj;
这将创建类型为 struct foo
的变量 FooObj
。
所以在你的代码中,如下:
class currency
{
/* ... */
}
void currency::getdata(int r, int p){
/* ... */
}
...等同于:
class currency
{
/* ... */
} void currency::getdata(int r, int p){
/* ... */
}
...相当于:
class currency
{
/* ... */
};
currency void currency::getdata(int r, int p){
/* ... */
}
看起来你给了函数 getdata
两个 return 类型,这可以解释错误。
我猜你错过了 class 定义后的分号;
类不像函数,而是类似于C中的struct定义,需要在}
后面加一个分号。
如:
class A {};
如果你在结束 class currency{ } 后放一个分号 ";"
你的程序将被编译并且你会得到正确的输出。
class abc
{
...
};
每当我编译这个程序时,我都会收到一个错误 "Too many types in decleration on line 13"。我没有看到任何可能的语法错误,但我仍然面临这个问题。
#include<iostream.h>
#include<conio.h>
class currency
{
private:
int rupee,paise;
int total;
public:
void getdata(int r,int p);
void display();
}
void currency::getdata(int r, int p){
rupee=r;
paise=p;
total=r*100+p;
}
void currency::display(){
cout<<rupee<<" Rupees"<<" and "<<paise<<"Paise"<<endl;
cout<<"Converted value="<<total;
}
int main(){
currency c;
c.getdata(5,25);
c.display();
getch();
return 0;
}
需要分号来终止class定义:
} ; // semicolon needed here.
void currency::getdata( ...
否则,编译器看起来像这样:
class blahblah {int etc, etc1; int etc2; } void currency::getdata (...
我猜测,根本问题是 class currency
正文后缺少分号。
回想一下在 C/C++ 中,您可以将对象定义为 class 或结构定义的一部分,如下所示:
struct foo
{
int bar;
} FooObj;
这将创建类型为 struct foo
的变量 FooObj
。
所以在你的代码中,如下:
class currency
{
/* ... */
}
void currency::getdata(int r, int p){
/* ... */
}
...等同于:
class currency
{
/* ... */
} void currency::getdata(int r, int p){
/* ... */
}
...相当于:
class currency
{
/* ... */
};
currency void currency::getdata(int r, int p){
/* ... */
}
看起来你给了函数 getdata
两个 return 类型,这可以解释错误。
我猜你错过了 class 定义后的分号;
类不像函数,而是类似于C中的struct定义,需要在}
后面加一个分号。
如:
class A {};
如果你在结束 class currency{ } 后放一个分号 ";"
你的程序将被编译并且你会得到正确的输出。
class abc
{
...
};