这个 C++ 程序有啥问题?
Posted
技术标签:
【中文标题】这个 C++ 程序有啥问题?【英文标题】:What's wrong with this C++ program?这个 C++ 程序有什么问题? 【发布时间】:2011-02-17 21:23:26 【问题描述】:我只有一个头文件和一个 .cpp 文件,我只是将一个值传递给函数,但它给了我一个错误
main.c
#include "me.h"
#include <iostream>
#include <sstream>
#include <string.h>
using namespace std;
int main()
me("http");
我.h
#ifndef ME_H_
#define ME_H_
#include <string.h>
class me
public:
me(std::string u);
virtual ~me();
;
#endif /* ME_H_ */
我的.cpp
#include "me.h"
#include <iostream>
#include <string.h>
using namespace std;
me::me(std::string u)
// TODO Auto-generated constructor stub
cout << "help";
me::~me()
// TODO Auto-generated destructor stub
我遇到了一个错误
In file included from ../src/me.cpp:8:
../src/me.h:13: error: expected ‘)’ before ‘u’
../src/me.cpp:12: error: prototype for ‘me::me(std::string)’ does not match any in class ‘me’
../src/me.h:11: error: candidates are: me::me(const me&)
../src/me.h:11: error: me::me()
make: *** [src/me.o] Error 1
【问题讨论】:
@Erik 是正确的。和往常一样,第一个错误消息是需要注意的:编译器说它在 me.h 声明me(std::string u);
的行上感到困惑
【参考方案1】:
#include <string>
而不是#include <string.h>
string.h 是 C 字符串标头,在 C++ 中可通过 <cstring>
访问
<string>
是定义 std::string
的 C++ 标头
【讨论】:
【参考方案2】:你想要#include <string>
而不是#include <string.h>
【讨论】:
以上是关于这个 C++ 程序有啥问题?的主要内容,如果未能解决你的问题,请参考以下文章