c++ class 未在范围内声明 - 从 main 调用
c++ class not declared in scope - called from main
卡了好久了。任何帮助将不胜感激。
FlexStringDemo.cpp - 主要
#include "FlexString.h"
#include <iostream>
using namespace std;
int main(){
FlexString inputOne;
return 0;
}
FlexString.h
#ifndef FLEXSTRING_H
#define FLEXSTRING_H
#include "LinkedList.h"
namespace linkedList{
class FlexString{
public:
FlexString();
FlexString(std::string input);
private:
LinkedList *list;
std::string data;
};
}
#endif
FlexString.cpp
#include "FlexString.h"
#include <iostream>
namespace linkedList{
FlexString::FlexString(){
list = new LinkedList();
}
FlexString::FlexString(string input){
list = new LinkedList();
}
}
我收到此错误消息:
FlexStringDemo.cpp: In function ‘int main()’:
FlexStringDemo.cpp:14:2: 错误:“FlexString”未在此范围内声明
弹性字符串输入一个;
^
FlexStringDemo.cpp:14:2: 注意:建议的替代方案:
在 FlexStringDemo.cpp:1:0 包含的文件中:
FlexString.h:7:7: 注意:‘linkedList::FlexString’
class FlexString{
不知道为什么我不能创建 FlexString 对象,因为我已经包含了头文件。
提前致谢
FlexString
属于命名空间 linkedList
.
您必须使用范围解析来访问 class,就像这样
linkedList::FlexString inputOne;
或 using
关键字省略命名空间
using namespace linkedList;
虽然我不推荐后者。明确地写命名空间是最好的。
卡了好久了。任何帮助将不胜感激。
FlexStringDemo.cpp - 主要
#include "FlexString.h"
#include <iostream>
using namespace std;
int main(){
FlexString inputOne;
return 0;
}
FlexString.h
#ifndef FLEXSTRING_H
#define FLEXSTRING_H
#include "LinkedList.h"
namespace linkedList{
class FlexString{
public:
FlexString();
FlexString(std::string input);
private:
LinkedList *list;
std::string data;
};
}
#endif
FlexString.cpp
#include "FlexString.h"
#include <iostream>
namespace linkedList{
FlexString::FlexString(){
list = new LinkedList();
}
FlexString::FlexString(string input){
list = new LinkedList();
}
}
我收到此错误消息:
FlexStringDemo.cpp: In function ‘int main()’:
FlexStringDemo.cpp:14:2: 错误:“FlexString”未在此范围内声明 弹性字符串输入一个; ^ FlexStringDemo.cpp:14:2: 注意:建议的替代方案: 在 FlexStringDemo.cpp:1:0 包含的文件中: FlexString.h:7:7: 注意:‘linkedList::FlexString’ class FlexString{
不知道为什么我不能创建 FlexString 对象,因为我已经包含了头文件。 提前致谢
FlexString
属于命名空间 linkedList
.
您必须使用范围解析来访问 class,就像这样
linkedList::FlexString inputOne;
或 using
关键字省略命名空间
using namespace linkedList;
虽然我不推荐后者。明确地写命名空间是最好的。