сохранить целочисленное значение в комплексной переменной

Это очень просто, но я не могу удалить ошибку. Я хочу хранить целочисленное значение в сложной переменной.

int int2 =2;
comp *cal = int2;

Спасибо

-4

Решение

Если вы используете стандартные комплексные числа (то есть 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;

Но, повторяю, что бы вы ни думали, что вам нужно сделать, вам почти наверняка не нужен указатель здесь.

2

Другие решения

Других решений пока нет …