Это очень просто, но я не могу удалить ошибку. Я хочу хранить целочисленное значение в сложной переменной.
int int2 =2;
comp *cal = int2;
Спасибо
Если вы используете стандартные комплексные числа (то есть comp
это псевдоним для std::complex<something>
):
comp cal = int2;
Если comp
не является стандартным сложным типом, тогда нам нужно посмотреть, как он определен; нет никакого способа предположить, как это могло бы работать.
ОБНОВИТЬ: Что касается вашего комментария: так как это пользовательский тип агрегата, и предполагается, Q
реальная часть:
comp cal = {0, int2};
хотя вы действительно должны рассмотреть возможность использования стандартных типов.
Относительно остальной части вашего комментария: с какой стати вы должны использовать указатель? Это безумие. Но если вам действительно это нужно:
comp cal_ = {0, int2};
comp *cal = &cal_;
или если вам нужно динамическое распределение по какой-то причине (что вам почти наверняка не нужно; и если вам это нужно, вы должны использовать умные указатели, а не необработанные указатели):
comp *cal = new comp{0, int2};
// and don't forget to delete it when you've finished with it
delete cal;
или если вы застряли на языке до 2011 года:
comp *cal = new comp;
cal->I = 0;
cal->Q = int2;
Но, повторяю, что бы вы ни думали, что вам нужно сделать, вам почти наверняка не нужен указатель здесь.
Других решений пока нет …