QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 733|回复: 13

问几个问题

[复制链接]
发表于 2003-9-25 16:46:30 | 显示全部楼层 |阅读模式
我最近用g++编译的时候,老是说我的cout,cerr等,undeclared,还有
我在头文件里用
[code:1]#include <assert>
using namespace std;
[/code:1]居然说找不到assert这个目录?
不知道小弟什么地方错了,麻烦指点一下,
还有void main()但是编译的时候老是出错,说必须是int型
int main(char argc, char* argv[])
给我报的错是in function int main(char**)
也不是很明白什么意思,
发表于 2003-9-25 17:50:08 | 显示全部楼层
第一个问题看明白了,但答案不太肯定,是不是需要stdio.h?
第二个问题偶不会
第三个问题你是不是用renturn了?那必须是int型,还有,argc应该是int型而不是char,如果还是不行的话,你试试:
int main(argc, argv[])
int argc;
char **argv;
回复

使用道具 举报

 楼主| 发表于 2003-9-25 18:43:25 | 显示全部楼层
int main(char argc, char* argv[])
这个是小弟写错了是int main(int argc, char* argv[])
我是看了新的c++ standard,然后才这样写的,新标准里面把头文件后面的.h都省略了!
回复

使用道具 举报

发表于 2003-9-25 21:36:19 | 显示全部楼层
你确定你的linux支持新的c++standard?
回复

使用道具 举报

 楼主| 发表于 2003-9-25 22:52:51 | 显示全部楼层
这个就不知道怎么确定了,我的是rh9.0,应该支持吧!
回复

使用道具 举报

 楼主| 发表于 2003-9-26 02:13:11 | 显示全部楼层
晚上有编译了一个小template,
[code:1]#include <iostream>
using namespace std;

template<class T>
T max(T a,T b)
{
   return a>b?a:b;
}

int main()
{
cout<<"Max(3,5) is"
     <<max(3,5)<<endl;
cout<<"Max('3','5') is"
     <<max('3','5')<<endl;
}
[/code:1]
错误信息
[code:1]tmp.cpp: In function `int main()':
tmp.cpp:12: call of overloaded `max(int, int)' is ambiguous
tmp.cpp:6: candidates are: T max(T, T) [with T = int]
/usr/include/c++/3.2.2/bits/stl_algobase.h:169:                 const _Tp&
   std::max(const _Tp&, const _Tp&) [with _Tp = int]
tmp.cpp:13: call of overloaded `max(char, char)' is ambiguous
tmp.cpp:6: candidates are: T max(T, T) [with T = char]
/usr/include/c++/3.2.2/bits/stl_algobase.h:169:                 const _Tp&
   std::max(const _Tp&, const _Tp&) [with _Tp = char]
[/code:1]
哪个能帮我解释一下啦,错误的第三句和第五句,到底是怎么回事啊,解释一下,
还有第一句,是不是我的编译器的问题啊?
回复

使用道具 举报

发表于 2003-9-27 09:28:19 | 显示全部楼层
T这个类是怎么定义的?
回复

使用道具 举报

发表于 2003-9-27 09:29:58 | 显示全部楼层
错误信息好象是说你的类型定义错误!你在max里定义a,b是T类型,而你在main里,参数是int和char型这当然不行拉!
回复

使用道具 举报

发表于 2003-9-27 09:30:48 | 显示全部楼层
第一句是指明你的错误是在main函数里,这没什么问题。
回复

使用道具 举报

 楼主| 发表于 2003-9-27 12:24:58 | 显示全部楼层
main必须指定返回类型,我用void,编译器还不给通过!
回复

使用道具 举报

 楼主| 发表于 2003-9-27 20:51:50 | 显示全部楼层
找到原因了,std和max冲突了,
回复

使用道具 举报

发表于 2003-9-28 09:15:27 | 显示全部楼层
??????????什么原因    没看懂
回复

使用道具 举报

 楼主| 发表于 2003-9-28 15:07:09 | 显示全部楼层
把max改一下,改成T_max就编译成功了
回复

使用道具 举报

发表于 2003-10-7 20:08:49 | 显示全部楼层
我是自始至终都没有明白大家在说什么
以后在讨论问题的时候可不可以说得直白和完整些~照顾一下下小弟
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-14 11:41 , Processed in 0.049758 second(s), 16 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表