自定义类中使用string的问题

garkfbiafiaala 2014-03-19 10:49:35
以下是我写的一个类声明的头文件

#include <string>
using namespace std;
typedef struct roommate
{
string name;
int age;
}gay;


class dormitory
{
private:
gay gay2[6];
int count;
public:
dormitory(void);
bool isempty();
bool isfull();
int listcount();
bool additem(gay a);
void visit(void(*pf)(gay gay1));
};
我的这个类中用到了string类,我必须把#include <string>和using namespace std;放在这个头文件中编译才通过,我想问一下
一般来说#include <string>和using namespace std;是放在类声明头文件中,还是放在类的成员函数的文件中,还是放在使用该类的程序的文件中
...全文
335 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
FancyMouse 2014-03-21
  • 打赏
  • 举报
回复
这是有多扭曲要把roommate给typedef成gay(
Adol1111 2014-03-21
  • 打赏
  • 举报
回复
必须使用using namespace std; 的话,不要写在声明文件里,而且给using加上作用域,而不是整个文件都开放命名空间。比如:

void func(){
    using namespace std;
    ……
}
buyong 2014-03-20
  • 打赏
  • 举报
回复
#include<string> 放在类的实现文件中 不用using namespace std; 除非是小的玩具程序
turing-complete 2014-03-20
  • 打赏
  • 举报
回复
恰恰相反,我从来都不用using namespace std; 因为我看见这样的符号感到别扭,不清晰明了:string, vector, pair, set, map, cout...
引用 4 楼 u012827068 的回复:
但是不用using namespace std的话,用cout cin还有endl时都要在前面加上std::,这样不麻烦吗
飞天御剑流 2014-03-20
  • 打赏
  • 举报
回复
引用 4 楼 u012827068 的回复:
但是不用using namespace std的话,用cout cin还有endl时都要在前面加上std::,这样不麻烦吗
这只是习惯问题,习惯了就不会觉得了。
stevenxu 2014-03-20
  • 打赏
  • 举报
回复
你可以这样:在dormitory.h文件里写

#include <string>
typedef struct roommate
 {
     std::string name;
     int age;
 } gay;
而在dormitory.cpp文件里写

#include "dormitory.h"
using std::string;
dormitory::dormitory {
.
.
.
}
饭凉凉 2014-03-20
  • 打赏
  • 举报
回复
声明的时候加上。
garkfbiafiaala 2014-03-20
  • 打赏
  • 举报
回复
但是不用using namespace std的话,用cout cin还有endl时都要在前面加上std::,这样不麻烦吗
飞天御剑流 2014-03-19
  • 打赏
  • 举报
回复
不要使用using namespace std;这条命令不是给你平时使用的,是用于旧代码迁移的,平时使用using namespace std相当于把整个std都开放了,命名空间本来的意义就失去了。一般来说,代码应写成这样:

#include <string>

typedef struct roommate
{
    std::string name;
    int age;
}gay;
Pump天天学习 2014-03-19
  • 打赏
  • 举报
回复
一般来说不建议把using namespace std直接放在头文件中 而是用什么声明什么 比如只包括using std::string 或者直接using也不要,直接在用到strign的地方std::string
spaceman10 2014-03-19
  • 打赏
  • 举报
回复
放在类声明头文件中

65,208

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧