Как написать реализацию массива отдельно от объявления?
- Войдите на сайт для отправки комментариев
Ср, 20/11/2019 - 17:39
Здравствуйте. хочу написать свою библиотеку для семисегментного индикатора со сдвиговым регистром. Вроде что то пока придумываю и записываю. Возникла проблемка с массивом, не знаю как написать отдельно его объявление в классе Public в .h, и его реализацию в .cpp. Не знаю, может через 2 двоеточия как функцию?
код заголовочного файла(код реализации еще не писал):
#pragma once #include <Arduino.h> class seg { public: seg(const int _latchPin, const int _dataPin, const int _clockPin); segprint(int number, int delayval); private: byte inf[10]; // value array int latchPin; int dataPin; int clockPin; int latchgetter();// void latchsetter(const int _latchpin);// int datagetter();// void datasetter(const int _datapin);// setters, getters and register write int clockgetter();// void clocksetter(const int _clockpin);// void registerWrite(int whichState);// int decfunc(int val);// int prim(int val);// functions to sevensegment int hundreed(int val);// };
Дак вон же - описан массив в private. Что не работает?
Если массив принадлежит экземпляру, то у Вас всё уже написано. Больше ничего не надо. Пользуйтесь массивом на здоровье.
Или Вам нужен статический массив? Один на все экземпляры?
Да, мне нужен статический, но такой чтобы в .cpp записать значения каждого элемента.
вот массив
Надо в .cpp сразу же записать в него значения
при создании экземпляра класса , вызывается его конструктор , там можно и значения массиву присвоить ,или я что то не понимаю ?
Вроде так (в .cpp, прямо в области глобалов): byte seg::inf[10] = { ...тут значения через запятую... };
Спасибо! Отпишусь когда попробую!
Все я понял как. Почитал про статические переменные и функции и понял как сделать. Но у меня вопрос. Нужно ли писать byte seg::inf[10] = {...} в .cpp файле? Вполне вероятно, что я туплю, пожалуйста, не обижайтесь.)
Нужно ли суп ещё солить... Кто же кроме повара знает - нужно или нет.