白木相逸 2021-03-24 16:40 采纳率: 0%
浏览 23

有没有大佬给我解解惑?? 为什么编译不成功??

有没有大佬给我解解惑?? 为什么编译不成功??
  • 写回答

1条回答 默认 最新

  • 你知我知皆知 2024-07-23 22:45
    关注

    以下回答参考 皆我百晓生券券喵儿 等免费微信小程序相关内容作答,并由本人整理回复。

    在你提供的代码中,我注意到一个错误:在Reverse(SqListclass<T>&L)的定义中,缺少了模板参数。正确的定义应该是:

    template<class T>
    template<class other>
    void Reverse(SqListclass<T>& L)
    

    这是因为你需要为other提供一个模板参数,以便它能够正确地调用Reverse函数。

    另外,在编译时出现了一个错误,即Reverse(SqListclass<char>&L)没有被声明。这是因为在你的Reverse函数中使用了未声明的变量L。你应该确保所有的引用和指针都已经被声明或初始化。

    最后,请检查你的编译器是否支持模板(例如Visual Studio 2019及以上版本),因为一些编译器可能无法识别模板类型。

    以下是修复后的代码示例:

    template<class T>
    template<class other>
    void Reverse(SqListclass<T>& L)
    {
        // ...
    }
    
    int main()
    {
        char a[50];
        cin.getline(a,50);
    
        SqListclass<char> L;
        L.CreateList(a, strlen(a));
    
        Reverse(L);
        L.DispList();
    
        return 0;
    }
    

    请注意,这个例子是基于C++标准库的std::reverse函数来实现反向排序的。如果你正在使用自定义类或其他非标准库,那么你可能需要根据实际情况调整代码。

    评论

报告相同问题?