它非常简单,但我无法消除错误。我想将整数值存储在复变量中。
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;
但重申一下,无论你认为你必须做什么,你几乎肯定不想要一个指针。