免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1821 | 回复: 5
打印 上一主题 下一主题

Makefile初级程序问题!!!!! [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-09-18 15:21 |只看该作者 |倒序浏览
/*Teacher.h*/
class Teacher
{
protected:
char *pname;
public:
Teacher(char *name);
Teacher();
void show();
};

/* Teacher.cpp*/
#include "string"
#include "Teacher.h"
#include <iostream>
using namespace std;
Teacher(char* name)
{
pname=new char[10];
strcpy(name,pname);
}
Teacher()
{
}
void Teacher::show()

{
cout<<pname<<endl;
}
/*t-main.cpp*/

#include "Teacher.h"
#include "iostream"
using namespace std;
main()
{
Teacher test1;
Teacher test2("Michael");
test2.show();
}
makefile文件如下:
[fw@localhost c++]$ cat Makefile
t-main:t-main.o Teacher.o
        g++ -o t-main t-main.o Teacher.o
t-main.o:t-main.cpp Teacher.h
        g++ -c t-main.cpp
Teacher.o:Teacher.cpp Teacher.h
        g++ -c Teacher.cpp
运行make, 错误如下:
[fw@localhost c++]$ make
g++ -c Teacher.cpp
Teacher.cpp:5: parse error before `char'
Teacher.cpp:8: `name' was not declared in this scope
Teacher.cpp:8: `pname' was not declared in this scope
Teacher.cpp:8: ISO C++ forbids declaration of `strcpy' with no type
Teacher.cpp:8: `int strcpy' redeclared as different kind of symbol
/usr/include/string.h:83: previous declaration of `char* strcpy(char*, const
   char*)'
Teacher.cpp:8: initializer list being treated as compound expression
Teacher.cpp:9: parse error before `}' token
make: *** [Teacher.o] Error 1

高手们,能不能帮我解析一下,

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
2 [报告]
发表于 2007-09-18 15:26 |只看该作者
#include <string.h>
#include <iostream>

论坛徽章:
0
3 [报告]
发表于 2007-09-18 17:51 |只看该作者
Teacher(char* name)  ---->Teacher::Teacher(char* name)
{
pname=new char[10];
strcpy(name,pname);
}
Teacher()   ---->Teacher::Teacher()
{
}

论坛徽章:
0
4 [报告]
发表于 2007-09-19 14:40 |只看该作者

回复

我修改了 ,能编译过去,但是提示:段错误,是啥意思?

论坛徽章:
3
2015年迎新春徽章
日期:2015-03-04 09:56:11数据库技术版块每日发帖之星
日期:2016-08-03 06:20:00数据库技术版块每日发帖之星
日期:2016-08-04 06:20:00
5 [报告]
发表于 2007-09-19 14:50 |只看该作者
首先,你不知道C++语法。
其次,
Teacher(char* name)
{
pname=new char[10];
strcpy(name,pname);/*************????????????***************/
}
干这么危险的事情。

论坛徽章:
0
6 [报告]
发表于 2007-09-19 14:52 |只看该作者
原帖由 cjaizss 于 2007-9-18 22:50 发表
首先,你不知道C++语法。
其次,
Teacher(char* name)
{
pname=new char[10];
strcpy(name,pname);/*************????????????***************/
}
干这么危险的事情。


不仅危险,而且方向反了 -_-
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP