【问题标题】:c++ class not declared in scope - called from mainc++ 类未在范围内声明 - 从 main 调用
【发布时间】:2015-11-24 08:01:48
【问题描述】:

已经卡了很长时间了。任何帮助将不胜感激。

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’ 类 FlexString{

不知道为什么我不能创建 FlexString 对象,因为我已经包含了头文件。 提前致谢

【问题讨论】:

    标签: c++ object scope main


    【解决方案1】:

    FlexString 属于命名空间linkedList

    你必须使用作用域解析来访问这个类,像这样

    linkedList::FlexString inputOne;
    

    using 关键字省略命名空间

    using namespace linkedList;
    

    虽然我建议反对后者。最好明确地编写命名空间。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-04-03
      • 2010-12-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-17
      • 2012-06-28
      相关资源
      最近更新 更多