C++程序运行出错。 请大侠帮忙!

#include<iostream.h>
#include<string.h>
class Person
{
private:
char Name[20];
char Sex;
int Age;
public:
Person(char *a,char b,int c)
{
strcpy(Name,a);
Sex=b;
Age=c;
}
void print()
{ cout<<"名字:"<<Name<<",性别:"<<Sex<<",年龄:"<<Age<<","; }
};
class Teacher:public Person
{
private:
char major;
char position[10];
char course[15];
public:
Teacher(char *a,char b,int c char d,char *e,char *f):Person(a,b,c)
{ major=d;
strcpy(position,e);
strcpy(course,f);
}
void print()
{
Person::ptint();
cout<<"专业:"<<major<<",职称:"<<position<<",主讲课程:"<<course<<endl;
}
};
class Student:public Person
{
private:
int number;
char major;
public:
Student(char *a,char b,int c int g,char h):Person(a,b,c)
{number=g;
major=h;
}
void print()
{
Person::print();
cout<<"学号:"<<number<<",专业:"<<major<<endl;
}
};
void main()
{
Tedcher p1("凯兴","M",21,"IT","profession","computer");
p1.print();
Student p2("林挺","F",18,13091717,"IT");
p2.print();
}
提示的错误:
D:\编程程序\2\2.cpp(26) : error C2629: unexpected 'class Teacher ('
D:\编程程序\2\2.cpp(26) : error C2334: unexpected token(s) preceding ':'; skipping apparent function body
D:\编程程序\2\2.cpp(43) : error C2629: unexpected 'class Student ('
D:\编程程序\2\2.cpp(43) : error C2334: unexpected token(s) preceding ':'; skipping apparent function body
D:\编程程序\2\2.cpp(55) : error C2065: 'Tedcher' : undeclared identifier
D:\编程程序\2\2.cpp(55) : error C2146: syntax error : missing ';' before identifier 'p1'
D:\编程程序\2\2.cpp(55) : error C2065: 'p1' : undeclared identifier
D:\编程程序\2\2.cpp(56) : error C2228: left of '.print' must have class/struct/union type
D:\编程程序\2\2.cpp(57) : error C2660: 'Student::Student' : function does not take 5 parameters
执行 cl.exe 时出错.

2.obj - 1 error(s), 0 warning(s)
Tedcher p1("凯兴","M",21,"IT","profession","computer");
改为:
Teacher p1("凯兴","M",21,"IT","profession","computer");

不知道你是不是学生! 不过看你的程序觉得你实在是有必要看下基础的东西了! 还有调试程序需要耐性!
首先 你得清楚char 和char* char[]之间的区别.
其次 自己也在出错的地方看下!
1.
error C2629: unexpected 'class Teacher ('
Teacher(char *a,char b,int c char d,char *e,char *f):Person(a,b,c)
在int c后面少了逗号","
2.
error C2629: unexpected 'class Student ('
Student(char *a,char b,int c int g,char h):Person(a,b,c)
也是int c后面少了逗号","
3.
error C2065: 'Tedcher' : undeclared identifier
你自己定义的类名写错了!
Tedcher p1("凯兴","M",21,"IT","profession","computer");

Teacher p1("凯兴","M",21,"IT","profession","computer");

4
这个错误是看到你自己程序里的
在Teacher类里 Person::ptint(); 应该是Person::print()

5.(这个应该是一系列的错误)
请你自己看下
Tedcher p1("凯兴","M",21,"IT","profession","computer");
Student p2("林挺","F",18,13091717,"IT");
再看下
Teacher(char *a,char b,int c char d,char *e,char *f):Person(a,b,c)
Student(char *a,char b,int c int g,char h):Person(a,b,c)
首先Teacher类的构造是char* char int char char* char*
你实例化却是char* char* int char* char* char*
Student类的构造是char* char int int char
你实例化是char* char* int XXX char*
希望你自己看下char 和char* char[]之间的区别呢
另外一个建议你student的第四个参数 我用xxx表示的 如果你想用int那么你应该是超出了int能表示的最大的值了
所以应该是用char*表示为好!

如果你想做程序员 那么建议你 多点耐心 多点细心 还有基础的知识还是要学好的!
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-06-23
我在手机上看的第三十七行的代吗打错了,person::ptint() 要改为person::print()
第2个回答  2011-06-23
拼写错误2处:
print函数拼写错了,teacher类拼写错了。
语法错误:
太多,很分散。。查看子类定义成员类型,构造函数形参类型和实参的匹配。
第3个回答  2011-06-23
#include<iostream.h>
#include<string.h>
class Person
{
private:
char Name[20];
char Sex;
int Age;
public:
Person(char *a,char b,int c)
{
strcpy(Name,a);
Sex=b;
Age=c;
}
void print()
{ cout<<"名字:"<<Name<<",性别:"<<Sex<<",年龄:"<<Age<<","; }
};
class Teacher:public Person
{
private:
char major[3];
char position[10];
char course[15];
public:
Teacher(char *a,char b,int c, char *d,char *e,char *f):Person(a,b,c)
{ strcpy(major,d);
strcpy(position,e);
strcpy(course,f);
}
void print()
{
Person::print();
cout<<"专业:"<<major<<",职称:"<<position<<",主讲课程:"<<course<<endl;
}
};
class Student:public Person
{
private:
int number;
char major[3];
public:
Student(char *a,char b,int c ,int g,char *h):Person(a,b,c)
{(number=g);
strcpy(major,h);
}
void print()
{
Person::print();
cout<<"学号:"<<number<<",专业:"<<major<<endl;
}
};
void main()
{
Teacher p1("凯兴",'M',21,"IT","profession","computer");
p1.print();
Student p2("林挺",'F',18,13091717,"IT");
p2.print();
}
第4个回答  2011-06-23
自己慢慢去对比那里不同吧,修改后的程序如下:
#include <iostream>
#include <string>
using namespace std;
class Person
{
private:
char Name[20];
char Sex;
int Age;
public:
Person(char *a,char b,int c)
{
strcpy(Name,a);
Sex=b;
Age=c;
}
void print()
{ cout<<"名字:"<<Name<<",性别:"<<Sex<<",年龄:"<<Age<<","; }
};
class Teacher:public Person
{
private:
char major;
char position[10];
char course[15];
public:
Teacher(char *a,char b,int c,char d,char *e,char *f):Person(a,b,c)
{
major=d;
strcpy(position,e);
strcpy(course,f);
}
void print()
{
Person::print();
cout<<"专业:"<<major<<",职称:"<<position<<",主讲课程:"<<course<<endl;
}
};
class Student:public Person
{
private:
int number;
char major;
public:
Student(char *a,char b,int c,int g,char h):Person(a,b,c)
{number=g;
major=h;
}
void print()
{
Person::print();
cout<<"学号:"<<number<<",专业:"<<major<<endl;
}
};
void main()
{
Teacher p1("凯兴",'m',21,'IT',"profession","computer");
p1.print();
Student p2("林挺",'f',18,13091717,'T');
p2.print();
}
第5个回答  2011-06-23
代码你自己打的?
27行Teacher(char *a,char b,int c char d,char *e,char *f):Person(a,b,c)
int c char d少了个“,”
34行Person::ptint();
Person::print();
44行少了个“,”
54行Tedcher 改Teacher
54行改成Teacher p1("凯兴",'M',21,'I',"profession","computer");
58行改成Student p2("林挺",'F',18,13091717,"IT");
这代码那里弄来的,太烂了。

C++程序运行出错。 请大侠帮忙!
首先 你得清楚char 和char* char[]之间的区别.其次 自己也在出错的地方看下!1.error C2629: unexpected 'class Teacher ('Teacher(char *a,char b,int c char d,char *e,char *f):Person(a,b,c)在int c后面少了逗号","2.error C2629: unexpected 'class Student ('Student(char *a,...

运行程序的时候出现C++错误怎么办
运行程序的时候出现C++错误这样的问题一般是因为DLL文件出错或者VC运行库没有安装导致的,解决方法 一、下载VC运行库进行安装修复,修复后再进行测试。二、以管理员身份运行命令提示符,打开开始菜单,搜索cmd。在命令提示符上单击右键,选择“以管理员身份运行”;在命令提示符中输入以下命令:for %i in (...

C++运行时出错,请大侠指导:error C2275: "std::ifstream": 将此类...
ifstream是一种类型,C++在调用函数的时候,参数不用写类型的。所以你这里只要写成 vector<string> svec=store_file(is);就可以了。C++在函数的声明和定义中才需要写参数的类型。

C++字符串问题!程序编译通过,运行出错!求解
首先scanf函数中,既然str1(2,3)都被定义成数组,那么&str1(2,3)取出指向指针的指针是毫无意义的,应该去掉那么&操作符。第二,当p没有指向实际内存的时候你不能对p进行strcpy操作,你需要char* p=(char *)malloc(100*sizeof(char)),或者直接把它定义成一个数组 ...

Microsoft Visual C++ Runtime Library,运行时程序错误
Microsoft Visual C++ Runtime Library Runtime Error! 可能的情况是: 一、系统的运行库比较旧,而软件需要的是更新版本的运行库;或者系统里根本就没有软件需要的运行库; 二、系统的运行库损坏的说; 三、软件需要的运行库与系统的语言版本不一致。如图零、查毒杀毒,清理系统插件; 一、如果是IE出现这个错误,你应该...

...visual c++ runtime library报错问题,请大侠解决
1、看到Program:后面的那一行,看看是哪个软件报的错,如果是软件报错,请直接在控制面板——程序——卸载程序中将出错软件删除,然后再重装。2、就是库自身的问题,win7系统,考虑这种情况不在可能,如果是这样的话,就升级vc库即可,可能性不大。

C++程序,为什么编译通过了,执行时却出现错误
编译通过是因为你没有语法问题,运行出错是你的程序有逻辑问题,空指针,内存漏洞等程序问题

C++程提示<< st <<出错 求大侠帮忙
代码中st是一个对象,而 cout << "The size of" << st 这里用cout输出这个对象,string类没有重载<<这个操作符。所以提示了这个错误。参考string类原型:使用st.begin()可以取得字符串。修改后:include<iostream> using namespace std;int main(){ string st("The expense of spirit\\n");cout...

运行输入法出现c++运行错误
你可以搜索分区c中的msvc*.dll来找到它们,描述中有Microsoft Visual C++ runtime library就是 搜索时可以看到,很多应用软件都自带了这些运行库,所以也有可能是你的这个出错的程序自带的c++运行库有问题,所以先着重检查瑞星防火墙C:\\PROGRAM FILES\\RISING\\RFW\\RFWSRV.EXE所在文件夹内的运行库 检查这些...

C++程序编译时一直出现致命的错误fatal error C1004:意外文件结尾发现执 ...
大括号配对问题,void main() 下 少一个 } 问题在这:{ cerr<<"error of dividing zero.\\n"; exit(1); \/\/异常退出程序 } \/\/ 号后写 } 不起作用。其他问题:你的程序复制过来是否少了什么?你上面的程序应该是少了一些符号什么的。

相似回答
大家正在搜