Я пытаюсь получить некоторые значения из массива, который объявлен в другом классе. Массив имеет фиксированную длину и постоянные элементы (я никогда не буду изменять его значения на 100%, поэтому я сделал его постоянным).
Однако, когда я пытаюсь получить доступ к первому элементу в функции main
, Я получаю ошибку компиляции:
basavyr@Roberts-MacBook-Pro src % g++ -std=c++11 main.cc
Undefined symbols for architecture x86_64:
"Vectors::vec1", referenced from:
_main in main-c29f22.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1
Как видите, я компилирую на macOS Catalina с использованием clang (последняя версия).
[Q]: В чем может быть проблема ? Заранее спасибо.
Вот код:
#include <iostream>
class Dimension
{
public:
static constexpr int dim1 = 2;
static constexpr int dim2 = 1;
};
class Vectors
{
public:
static constexpr double vec1[2] = {4.20, 6.9};
};
int main()
{
auto a = Vectors::vec1[0]; //I also tried initializing this to a value rather than just accessing it directly through the class like I did below
std::cout << a << "\n";
std::cout << Vectors::vec1[0] << "\n";
return 0;
}