C++自己写的头文件无法用cout
自己写了一个头文件,就是一个类的定义,主文件里就是main函数。我在主文件里已经有#include<iostream>和usingnamespacestd;了,为什么头文...
自己写了一个头文件,就是一个类的定义,主文件里就是main函数。我在主文件里已经有#include <iostream>和using namespace std;了,为什么头文件里没有预编译就无法通过,都是说cout没有被声明?
展开
2个回答
展开全部
是头文件里的cout没有被声明?
那就头文件里加上#include <iostream>,所有cout改为std::cout。
P.S.虽然头文件里也可以用using namespace std;,但极不推荐这么做。
那就头文件里加上#include <iostream>,所有cout改为std::cout。
P.S.虽然头文件里也可以用using namespace std;,但极不推荐这么做。
追问
为什么不推荐用using namespace std;?
而且头文件不是都被包含在主文件里了吗,为什么还要在包含这些预处理命令?
追答
因为头文件是用来给大家用的,是你设计一大堆函数、类库的接口。如果在头文件里using namespace std;,那么就会使所有包含你头文件的源文件都使用std名字空间,你不能保证每个人都希望使用std名字空间。如果头文件里使用了更多的名字空间,后果就更严重,开发工程的时候都这么做,可能导致严重的重名。况且名字空间只能using(开始使用),没有unusing(停止使用)
头文件里#include 最好加上吧,若不加上,你至少要保证头文件包含在标准库包含之后,而且即使这样也不一定对。头文件是用来提供编译所需信息的,并不一定在每个源文件里展开,否则展开后每个源文件非常巨大,编译缓慢。因此最好让每个头文件独立地看起来正确。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询