首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

请问c++ 头文件的小疑点

2012-06-07 
请教c++ 头文件的小问题#ifndef _TEST_H_#define _TEST_H_#include stringusing namespace stdnamespac

请教c++ 头文件的小问题
#ifndef _TEST_H_
#define _TEST_H_
#include <string>

using namespace std;
namespace testns
{
  int n = 3;
   
  class bank
 {
  public string name;
  public bank(strin aName)
{
cout << "call default constructor";
name = aName;
}
  }
   
}
#endif
以上为testh.h文件中的全部内容。

请教各位,测试头文件使用,在testhmain.cpp文件中#include "testh.h",DEV环境。
头文件中未添加红色代码部分(class bank部分)之前,一切编译运行正常。当添加红色代码部分,编译报错:In file included from testhmain.cpp 。请问,这是什么原因造成的?谢谢

[解决办法]
int n = 3;

 定义不要放头文件里,放到cpp里。

#ifndef _TEST_H_
#define _TEST_H_
#include <string>

using namespace std;
namespace testns
{
extern int n;

class bank
 {
public string name;
public bank(strin aName)
{
cout << "call default constructor";
name = aName;
}
}

}

.cpp
#include "test.h"

int testns::n = 3;
[解决办法]
class bank
 {
public string name;
public bank(strin aName)
{
cout << "call default constructor";
name = aName;
}
}

}

这个里面的bank函数实现也拿出去, 虽然放这里没问题会自动内联, 但这属于运气活。

热点排行