我是C++新手。我最近正在製作一個使用單獨文件中的類的小程序。我也想使用setter和getter(設置& get)函數爲變量賦值。編譯器給我一個奇怪的錯誤,當我運行該程序。它說'字符串'不會命名一個類型。下面是代碼:'字符串'不會命名一個類型 - C++錯誤
MyClass.h
#ifndef MYCLASS_H // #ifndef means if not defined
#define MYCLASS_H // then define it
#include <string>
class MyClass
{
public:
// this is the constructor function prototype
MyClass();
void setModuleName(string &);
string getModuleName();
private:
string moduleName;
};
#endif
MyClass.cpp文件
#include "MyClass.h"
#include <iostream>
#include <string>
using namespace std;
MyClass::MyClass()
{
cout << "This line will print automatically because it is a constructor." << endl;
}
void MyClass::setModuleName(string &name) {
moduleName= name;
}
string MyClass::getModuleName() {
return moduleName;
}
的main.cpp文件
#include "MyClass.h"
#include <iostream>
#include <string>
using namespace std;
int main()
{
MyClass obj; // obj is the object of the class MyClass
obj.setModuleName("Module Name is C++");
cout << obj.getModuleName();
return 0;
}
'std :: string moduleName;' – SergeyA
我沒有得到它。我應該修改哪個文件?你可以一步一步解釋。 –
我和很多其他人強烈建議不要試圖通過在標題中添加'using namespace std ;'來解決此問題。它並不總是會導致痛苦,但它會導致比您想要忍受的更多的悲傷。更多在這裏:http://stackoverflow.com/questions/1452721/why-is-using-namespace-std-in-c-considered-bad-practice – user4581301