c++编程出错 error C2143: syntax error : missing ';' before 'public' 该怎么修改程序

#include<iostream.h>
#include<stdio.h>
enum base //抽象类
{
protected:
char title[80];
public:
void gettitle()
{
cout<<"书名:";cin>>title;
}
void printtitle()
{
cout<<"书名:"<<title<<":";
}
virtual boolean isgood()=0;
};
class Book : public base
{ int numsold;
public:
void getsold()
{
cout<<"每月销售书量:";cin>>numsold;
}
boolean isgood()
{
return (numsold>500) ? True:False;
}
};
class Journal:public base
{
int numsold;
public:
void getsold()
{
cout<<"每月销售杂志量:";cin>>numsold;
}
boolean isgood()
{
return (numsold>2500) ? True:False;
}
};
void main()
{
base *p[50]; //定义基类的指针数据
Book *pbook;
Journal *pjour;
char ch;
int count=0;
do //循环输入图书或者杂志的销售量
{
cout<<"输入书(b)或杂志(j):";
cin>>ch;
if (ch=='b')
{
pbook=new Book;
pbook->gettitle();
pbook->getsold();
p[count++]=pbook;
}
else if (ch=='j')
{
pjour=new Journal;
pjour->gettitle();
pjour->getsold();
p[count++]=pjour;
}
else
cout<<"输入错误"<<endl;
cout<<"输入另一项吗(y/n)?";
cin>>ch;
}while (ch=='y');
cout<<"\n输入结果:"<<endl;
for (int i=0;i<coount;i++) //循环查找,显示销售良好的图书或者杂志
{
if (p[i]->isgood()==True)
{
cout<<" ";
p[i]->printtitle();
cout<<"销售良好"<<endl;
}
}
}

显示错误
1.cpp
C:\Program Files (x86)\Microsoft Visual Studio\Common\MSDev98\Bin\1.cpp(5) : error C2059: syntax error : 'protected'
C:\Program Files (x86)\Microsoft Visual Studio\Common\MSDev98\Bin\1.cpp(7) : error C2143: syntax error : missing ';' before 'public'
C:\Program Files (x86)\Microsoft Visual Studio\Common\MSDev98\Bin\1.cpp(16) : error C2146: syntax error : missing ';' before identifier 'isgood'
C:\Program Files (x86)\Microsoft Visual Studio\Common\MSDev98\Bin\1.cpp(16) : error C2433: 'boolean' : 'virtual' not permitted on data declarations
C:\Program Files (x86)\Microsoft Visual Studio\Common\MSDev98\Bin\1.cpp(16) : error C2501: 'boolean' : missing storage-class or type specifiers
C:\Program Files (x86)\Microsoft Visual Studio\Common\MSDev98\Bin\1.cpp(16) : fatal error C1004: unexpected end of file found
Error executing cl.exe.

1.exe - 6 error(s), 0 warning(s)

编译错误已修正,包括enum->class 前者是定义枚举类型的,不是类
boolean-> bool, c++没有前者那样的类型
True-> true,同上
False-> false,同上
coount-> count,拼写错误
;-> ; 需要用半角字符

#include<iostream.h>
#include<stdio.h>
class base //抽象类
{
protected:
char title[80];
public:
void gettitle()
{
cout<<"书名:";cin>>title;
}
void printtitle()
{
cout<<"书名:"<<title<<":";
}
virtual bool isgood()=0;
};
class Book : public base
{ int numsold;
public:
void getsold()
{
cout<<"每月销售书量:";cin>>numsold;
}
bool isgood()
{
return (numsold>500) ? true:false;
}
};
class Journal:public base
{
int numsold;
public:
void getsold()
{
cout<<"每月销售杂志量:";cin>>numsold;
}
bool isgood()
{
return (numsold>2500) ? true:false;
}
};
void main()
{
base *p[50]; //定义基类的指针数据
Book *pbook;
Journal *pjour;
char ch;
int count=0;
do //循环输入图书或者杂志的销售量
{
cout<<"输入书(b)或杂志(j):";
cin>>ch;
if (ch=='b')
{
pbook=new Book;
pbook->gettitle();
pbook->getsold();
p[count++]=pbook;
}
else if (ch=='j')
{
pjour=new Journal;
pjour->gettitle();
pjour->getsold();
p[count++]=pjour;
}
else
cout<<"输入错误"<<endl;
cout<<"输入另一项吗(y/n)?";
cin>>ch;
}while (ch=='y');
cout<<"\n输入结果:"<<endl;
for (int i=0;i<count;i++) //循环查找,显示销售良好的图书或者杂志
{
if (p[i]->isgood()==true)
{
cout<<" ";
p[i]->printtitle();
cout<<"销售良好"<<endl;
}
}
}
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-12-30
#include<iostream.h>
#include<stdio.h>
class base //抽象类
{
protected:
char title[80];
public:
void gettitle()
{
cout<<"书名:";cin>>title;
}
void printtitle()
{
cout<<"书名:"<<title<<":";
}
virtual bool isgood()=0;
};
class Book : public base
{ int numsold;
public:
void getsold()
{
cout<<"每月销售书量:";cin>>numsold;
}
bool isgood()
{
return (numsold>500) ? true:false;
}
};
class Journal:public base
{
int numsold;
public:
void getsold()
{
cout<<"每月销售杂志量:";cin>>numsold;
}
bool isgood()
{
return (numsold>2500) ? true:false;
}
};
int main()
{
base *p[50]; //定义基类的指针数据
Book *pbook;
Journal *pjour;
char ch;
int count=0;
do //循环输入图书或者杂志的销售量
{
cout<<"输入书(b)或杂志(j):";
cin>>ch;
if (ch=='b')
{
pbook=new Book;
pbook->gettitle();
pbook->getsold();
p[count++]=pbook;
}
else if (ch=='j')
{
pjour=new Journal;
pjour->gettitle();
pjour->getsold();
p[count++]=pjour;
}
else
cout<<"输入错误"<<endl;
cout<<"输入另一项吗(y/n)?";
cin>>ch;
}while (ch=='y');
cout<<"\n输入结果:"<<endl;
for (int i=0;i<count;i++) //循环查找,显示销售良好的图书或者杂志
{
if (p[i]->isgood()==true)
{
cout<<" ";
p[i]->printtitle();
cout<<"销售良好"<<endl;
}
}
}
第2个回答  2011-12-30
第七行的public后面貌似是个分号,还是我孤陋寡闻了,我没见过是分号的语句结尾。
第3个回答  2011-12-30
//你错的地方很多,具体改了哪里我也不知道了,
//首先你的头文件iostream.h是C语言里的吗?
//然后你true为什么老是写成True,false也是一样的问题,还有就是bool老是写成booleam
//还有一个很重要的问题就是你有一个地方的分号写成了中文的
//cout<<"输入书(b)或杂志(j):";
// cin>>ch;
//是这个地方,你看到同有,这个问题是比较难发现的。
//还下面有一个地方count你写成了coount,我找到的就这些错误吧,其他的没了
//还有,把enum改成class,这个我不知道是什么原因啊,对C++里的类不是很懂,你自己看吧
#include<iostream>
#include<stdio.h>
using namespace std ;
//#include<iostream.h>
//#include<stdio.h>
class base //抽象类
{
protected:
char title[80];
public:
void gettitle()
{
cout<<"书名:";cin>>title;
}
void printtitle()
{
cout<<"书名:"<<title<<":";
}
virtual bool isgood()=0;
};
class Book : public base
{ int numsold;
public:
void getsold()
{
cout<<"每月销售书量:";cin>>numsold;
}
bool isgood()
{
return (numsold>500) ? true:false;
}
};
class Journal:public base
{
int numsold;
public:
void getsold()
{
cout<<"每月销售杂志量:";cin>>numsold;
}
bool isgood()
{
return (numsold>2500) ? true:false;
}
};
void main()
{
base *p[50]; //定义基类的指针数据
Book *pbook;
Journal *pjour;
char ch;
int count=0;
do //循环输入图书或者杂志的销售量
{
cout<<"输入书(b)或杂志(j):";
cin>>ch;
if (ch=='b')
{
pbook=new Book;
pbook->gettitle();
pbook->getsold();
p[count++]=pbook;
}
else if (ch=='j')
{
pjour=new Journal;
pjour->gettitle();
pjour->getsold();
p[count++]=pjour;
}
else
cout<<"输入错误"<<endl;
cout<<"输入另一项吗(y/n)?";
cin>>ch;
}while (ch=='y');
cout<<"\n输入结果:"<<endl;
for (int i=0;i<count;i++) //循环查找,显示销售良好的图书或者杂志
{
if (p[i]->isgood()==true)
{
cout<<" ";
p[i]->printtitle();
cout<<"销售良好"<<endl;
}
}
}

...error : missing ';' before 'public' 该怎么修改程序
编译错误已修正,包括enum->class 前者是定义枚举类型的,不是类 boolean-> bool, c++没有前者那样的类型 True-> true,同上 False-> false,同上 coount-> count,拼写错误 ;-> ; 需要用半角字符 include<iostream.h> include<stdio.h> class base \/\/抽象类 { protected:char title[80];pu...

...syntax error : missing ';' before 'public'
把public删掉 这又不是java。。。

...C2143: syntax error : missing ';' before 'tag::id
include <iostream> \/*预处理命令*\/ using namespace std;class Ti{public: void set_A(); void set_B();private: float chang; float wide; float high;};int main(){ \/\/这里改为int Ti v1; v1.set_A(); v1.set_B(); Ti v2; v2.set_A(); ...

error C2143: syntax error : missing ')' before ';'是什么错误,找遍...
在运行程序时发现了一个问题,总是提示一个错误:error C2143: syntax error : missing before type。解决方法如下:把所有变量的声明放在可执行代码之前。出现此问题的原因在于:将文件保存成了 .c 格式。如果是cpp格式就能正常编译。改成.cpp就可以正常运行,和你变量声明的位置就没有关系了。一般在...

...C2143: syntax error : missing ';' before 'namespace' 请问怎么修 ...
class _CRTIMP exception { public:exception();exception(const __exString&);exception(const exception&);exception& operator= (const exception&);virtual ~exception();virtual __exString what() const;private:__exString _m_what;int _m_doFree;}\/\/这里需要一个分号 _STD_BEGIN;

c++ error C2143: syntax error : missing ')' before ';'请您多...
define STACK_INIT_SIZE 100;define STACKINCREMENT 10;改为 define STACK_INIT_SIZE 100 define STACKINCREMENT 10 (即去掉结尾的分号)

c++编程出错 error C2143: syntax error : missing ';' before 'public...
编译错误已修正,包括enum-class 前者是定义枚举类型的,不是类 boolean- bool, c++没有前者那样的类型 True- true,同上 False- false,同上 coount- count,拼写错误 ;- ; 需要用半角字符 includeiostream.h includestdio.h class base \/\/抽象类 { protected:char title[80];public:void get...

出现错误 c(26) : error C2143: syntax error : missing ';' before
VC++6.0 编译器需将变量声明段与程序段分开,即同一个代码段中,变量声明要拉前。修正:\/*变量声明或函数声明*\/ int a, b, c, d, e, f;int k;char name[10][16];double score[3][10];double chinese_top10(double score[3][10], char name[10][16]);double math_top10(double...

c++语法错误 error C2143: syntax error : missing ';' before '&&'
空语句”。空语句的格式就是一个分号。所以编译程序提示你:语法错误:在‘&&’之前缺失分号。( syntax error : missing ';' before '&&' )看来,是编译程序的分析结果,误判了你的错误原因。当然,编译程序一般是不能保证正确分析你的错误原因的,只要提醒你“有错误”就不错了。

c++语法错误 error C2143: syntax error : missing ')' before '{'
define ar 4.7513 define br 1.199*10^(-3)define cr -1.4232*10(-7)define a0 4.678 define b0 6.8723*10^(-4)define c0 -6.0683*10*(-8)define b 0.12 define m 200 void main(){int i,j,k,n;double avtotle[2048];double totle[2048],Data[409600];double retotle[2048...

相似回答