这个 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 &lt;string&gt; 而不是#include &lt;string.h&gt;

string.h 是 C 字符串标头,在 C++ 中可通过 &lt;cstring&gt; 访问

&lt;string&gt; 是定义 std::string 的 C++ 标头

【讨论】:

【参考方案2】:

你想要#include &lt;string&gt; 而不是#include &lt;string.h&gt;

【讨论】:

以上是关于这个 C++ 程序有啥问题?的主要内容,如果未能解决你的问题,请参考以下文章

学习C++有啥用途?

C++ 类 - 我的程序有啥问题?

C++ std::atomic 在程序员级别有啥保证?

VBS和JAVA和C++,有啥区别,有啥差距

有啥方法可以使用在一个函数中定义的 const 变量可以被 C++ 中同一程序中的其他函数使用

C语言和C++有啥区别?