qq_41822833 2023-04-04 09:37 采纳率: 60%
浏览 12

命名空间中包含头文件报错

这样的代码是正确的:

namespace cplusplus_primer {
    class Sales_data { /*...*/ };
    Sales_data operator+(const Sales_data&, const Sales_data&);
    class Query {};
    class Query_base {};
}

#include <iostream>
#include <string>

int main()
{
    cplusplus_primer::Sales_data book;  // 使用了命名空间
    std::string str("hello");  // 使用了 std 命名空间
    std::cout << str << std::endl;
    return 0;
}

但我把这些文件放在命名空间中为何就是错的呢?

namespace cplusplus_primer {
#include <iostream>
#include <string>
    class Sales_data { /*...*/ };
    Sales_data operator+(const Sales_data&, const Sales_data&);
    class Query {};
    class Query_base {};
}

//#include <iostream>
//#include <string>

int main()
{
    cplusplus_primer::Sales_data book;  // 使用了命名空间
    cplusplus_primer::std::string str("hello");  // 使用了 std 命名空间
    cplusplus_primer::std::cout << str << cplusplus_primer::std::endl;
    return 0;
}

有人知道这其中原因么

  • 写回答

3条回答 默认 最新

  • 快乐鹦鹉 2023-04-04 09:54
    关注

    报什么错呢?

    评论

报告相同问题?

问题事件

  • 创建了问题 4月4日