首页 > 解决方案 > c++ std::vector "this" 是 "nullptr"

问题描述

由于某种原因,我不能在 datacenter.cpp 中使用向量 _vec。它说“ this ”是“nullptr”

请帮忙,谢谢<3

数据中心.h

#pragma once
#include <iostream>
#include <vector>

class datacenter
{
public:
    datacenter();
    ~datacenter();

    void get_elements();

    std::vector<float> _vec;
};

数据中心.cpp

#include "datacenter.h"

datacenter::datacenter(){}

void datacenter::get_elements()
{
if (_vec.empty()) { //<---- the error appears here
    std::cout << "empty" << std::endl;
    }
}

datacenter::~datacenter(){}

主文件

#include <iostream>
#include <vector>
#include "datacenter.h"

class datacenter;

int main()
{
std::unique_ptr<datacenter> dc;
dc->get_elements();
}

标签: c++vectorsmart-pointersinitnullptr

解决方案


麻烦来自:

std::unique_ptr<datacenter> dc;

这不会创建 的实例datacenter,而只会创建指向它的(空)(智能)指针。您需要创建一个实例:

auto dc = std::make_unique<datacenter>();

也可以看看


推荐阅读