c++ - '.size' 的左边必须有类/结构/union

标签 c++ templates

仍然无法让这个工作。请帮忙!

template <typename T>
class Container{
public:
    ...

    friend ostream& operator<<(ostream& ostr, const Container<T>& C)
    {
        for(size_t i=0; i!= data.size(); i++) // ERROR
            ostr<<data[i]<<" "; 
        return ostr;
    }

private:
    vector<T> data;
};

最佳答案

dataC 的成员因此应作为 C.data 访问(请记住,您的 operator<< 是一个 free function 而不是 Container 的成员):

    for(size_t i = 0; i != C.data.size(); ++i)
        ostr << C.data[i] << " "; 

关于c++ - '.size' 的左边必须有类/结构/union ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18518292/

相关文章:

c++ - Case 语句中的数组

c++ - CMake 添加带有子目录的库

c++ - osx 构建配置上的 .framework 文件

c++ - 使用函数指针的模板化双重调度

C++ 模板,将 enable_if 用于运算符的两种不同实现

c++ - 局部回归和局部似然法的实现

c++ - 模式识别学什么比较好?

C++ 嵌套模板结构

c++ - 基于条件模板的代码执行 C++

templates - VS2019 + Xamarin.Forms = UWP/EXE 被删除?