Почему я получаю «Недопустимое использование :: (оператор разрешения области видимости)?» - PullRequest
0 голосов
/ 23 мая 2019

Я строю проект структур данных, используя cmake, и я создал класс массива.

Я использовал std::size_t в качестве параметра для моего конструктора по умолчанию.Но когда я пытаюсь построить проект, появляется сообщение о том, что Invalid use of ::

Я пытался using namespace std;, но также не работал.

файл barra.h

#ifndef BARRAY_H
#define BARRAY_H

class BArray
{
public:
    BArray() = delete;                            //Declare the default constructor as deleted to avoid
                                                  //declaring an array without specifying its size.
    BArray(std::size_t);
    BArray(int, int);                             //Constructor that initializes the array with init_val.
private:
    int* array;
    int length;
};

#endif // BARRAY_H

И barray.cpp

#include <iostream>
#include "barray.h"

BArray::BArray(std::size_t init_size)
{
    array = new int[init_size]();
    length = init_size;
}

BArray::BArray(int init_size, int init_val)
{
    array = new int[init_size];
    length = init_size;

    for(int i = 0; i < init_size; ++i)
        array[i] = init_val;
}

Сообщение об ошибке:

ошибка: недопустимое использование ::

1 Ответ

0 голосов
/ 23 мая 2019

Добавьте следующий заголовочный файл, и он должен работать.

#include <cstddef>

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...