Я все еще зарабатываю свои крылья C++; Мой вопрос в том, есть ли у меня такая структура:
struct Height
{
int feet;
int inches;
};
И тогда у меня есть такие строки:
Height h = {5, 7};
Person p("John Doe", 42, "Blonde", "Blue", h);
Мне нравится инициализация структур с помощью фигурных скобок, но я бы предпочел, чтобы приведенное выше было в одной строке в анонимной структуре Height. Как мне это сделать? Мой первоначальный наивный подход был:
Person p("John Doe", 42, "Blonde", "Blue", Height{5,7});
Однако это не сработало. Я очень далек от цели?
Height
как одно полеinches
. Когда вам нужны футы, вы можете преобразовать их в футы; просто гораздо проще иметь дело с одной единицей, чем жонглировать несколькими единицами, тем более что сейчас вы можете иметь несколько значений, которые равны, но не имеют одинакового представления (например,{2, 3}
и{1, 15}
). - person James McNellis   schedule 26.10.2010Height{5,7}
в конструкторе Person укажите(struct Height){5,7}
(если вы передаете по ссылке) (или&(struct Height){5,7}
, если вы передаете указатель). Вы в основном приводите список инициализаторов к желаемому типу. Это функция C99+, но ее можно использовать и с C++. - person Erhhung   schedule 31.01.2014