c++ - 如何定义嵌套类并使用它

标签 c++ c++11

我声明了一个嵌套类 Element,我想使用创建这样的对象并将其插入一个数组,该数组将 Element 存储在我的 AOSMatrix 类中。我遇到的问题是我不知道应该在我的

中的函数 push_back 中使用什么
void push_back(int i, int j, double val) 

这是我的其余代码: #包括 #包括

using namespace std;

class AOSMatrix {
    public:
    AOSMatrix(int M, int N) : iRows(M), jCols(N) {}

    void push_back(int i, int j, double val) {
        assert(i < iRows && i >= 0);
        assert(j < jCols && j >= 0);

        arrayData.push_back(???);
    }

    private:
        class Element {
            public:
                int row, col;
                double val;
        }

        int iRows, jCols;
        vector<Element> arrayData;
}

最佳答案

您的 Element 类应该有一个构造函数来将字段初始化为:

class Element{
    public:
        int row, col;
        double val;
        Element(int row, int col, double val){
            this->row = row;
            this->col = col;
            this->val = val;
        }
}

您可以将 vector 中的元素推回:

Element e(i, j, val);
arrayData.push_back(e);

关于c++ - 如何定义嵌套类并使用它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43749997/

相关文章:

将未初始化的局部变量传递给函数时出现 C++ 编译器警告(?)

c++ - CreateDC 因网络打印机而失败 - 错误代码 1801

c++ - 使用 atomic_flag 自旋锁进行内存排序

c++ - move 构造函数并双重删除

c++11 - 完美转发 - 这是怎么回事?

c++ - 在这种情况下如何从类型 "const char*"初始化字段?

c++ - 找不到 ahadmin.h 文件

c++ - 检查类型实例是否可以流式传输

c++ - 将 std::vector 传递给 openCL 内核 C++ 绑定(bind)

c++ - g++ 和 clang++ SFINAE 和 SFINAE 失败的不同行为