Подскажите, пожалуйста, как реализовать поставленную задачу. "Завод выпускает разные измерительные приборы. Каждый прибор может характеризоваться такими данными как: - наименование прибора; - Каждый прибор может измерять несколько величин, каждая из которых характеризуется: а) названием величины; б) верхняя/нижняя граница; в) погрешность измерения. -состоянием прибора (включен/выключен; исправен/неисправен). Задание создать класс прибор, предусмотреть конструктор, методы изменения и получения данных о приборе. Создать несколько объектов.
Я создаю структуру, в которой описаны свойства измеряемой величины
struct Properties_type {
string name_of_measurable_value;
float lower_bound;
float upper_bound;
float error;
} Properties;
И создаю динамический массив структур, так как измеряемых величин у одного прибора может быть несколько, в зависимости от введенных пользователем данных
struct Properties_type *list;
как получить доступ к элементам этого массива для объекта класса. Пожалуйста, объясните как можно детальней работу со структурами в классе, если можно. Только начала изучать ООП. Спасибо!!!
1) Динамический массив структур так не создать.
struct Properties_type *list;
Надо примерно так:
int N = 5;
MyClass *obj = new MyClass[N];
2)Если Вы изучаете ООП, стоит узнать о том, что такое конструкторы, деструкторы, методы классов. Вот пример простейшего класса (класс и структура практически ничем не отличаются для Вашего этапа изучения).
3) Вот как-то так можно:
struct MyClass
{
MyClass()//конструктор без аргументов
{
Value_ = 0;
}
MyClass(int Val)//конструктор от 1 агрумента
{
Value_ = Val;
}
void SetValue(int Val) //метод именуемый сеттером, им можно заполнить поле Value
{
Value_ = Val;
}
int GetValue(){ //метод возвращающий значение поля Value
return Value_;
}
int Value_; //поле класса MyClass типа int
};
int main ()
{
int N = 5;
MyClass *obj = new MyClass[N]; //создание массива MyClass
for (size_t i(0); i!=N;++i) //цикл для всех эл-ов массива типа MyClass
{
obj[i].SetValue(i);// вот здесь заполняем
}
for (size_t i(0); i!=N;++i) //цикл для вывода всех эл-ов массива типа MyClass
{
int temp = obj[i].GetValue(); // оператор точка даёт доступ к методам или
// полям класса
std::cout<<temp<<std::endl;
}
delete[] obj;
return 0;
}
Запустите это в вашей среде и пройдитесь с помощью точек останова по всему коду. Так понять будет проще.
UPD1: Вот для конкретно Вашего примера без конструкторов и методов.
struct Properties_type
{
std::string name_of_measurable_value;
float lower_bound;
float upper_bound;
float error;
};
int main ()
{
int N = 5;
Properties_type *obj = new Properties_type[N];
for (size_t i(0); i!=N;++i)
{
obj[i].lower_bound = 3; // вот здесь заполняйте как нужно
}
for (size_t i(0); i!=N;++i)
{
std::cout<<obj[i].lower_bound<<std::endl;
}
delete[] obj;
return 0;
}
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Как укоротить сообщения об ошибках и предупреждения компилятора? Особенно при ошибках в шаблонах сначала идёт куча строк, в каком файле инстанциация...
После деплоя сервера при попытке получить JSON по адресу
ЗдравствуйтеКак открыть окно информации приложения зная пакет приложения или взяв его из переменной?Использую java в sketchware