Как установить значение в константу в структуру C ++ - PullRequest
0 голосов
/ 27 марта 2019

Я не могу присвоить значение константе в структуре, следуйте коду:

#include <iostream>
#include <stdio.h>

typedef struct
{
  float a;
  float b;
  float c;
  float intensity;
} PointXYZI;

typedef struct structParent{
  int x;
  int y;
  const PointXYZI* xyzi;
} structParent;

int main()
{

  float o = 10.f, p = 5.0f, z = 96.0f;

  PointXYZI points = {o, p, z};

  const structParent *data = {0,0, &points};

  std::cout << " *-* " << data.xyzi->c << std::endl;
  std::cout << " *-* " << points.a << std::endl;


  return 0;
}

Я получаю следующую ошибку с этим кодом:

ошибка: данные скалярного объекта ''требуется один элемент в инициализаторе const structParent * data = {0,0, & points};

Спасибо ...

1 Ответ

0 голосов
/ 28 марта 2019

Ниже приведена примерная версия ответа @ UnholySheep:

void someFunc(const structParent &x)
//                             ^^^^^^
{
  std::cout << " @_@ " << x.xyzi->c << std::endl;
}

int main()
{

  float o = 10.f, p = 5.0f, z = 96.0f;

  PointXYZI points = {o, p, z, 0};
  //                        ^^^^^
  const structParent data = {0,0, &points};
  //                ^^^
  std::cout << " *-* " << data.xyzi->c << std::endl;
  std::cout << " *-* " << points.a << std::endl;

  someFunc(data);
  //      ^^^^^^^
  return 0;
}
...