-4

它非常简单,但我无法消除错误。我想将整数值存储在复变量中。

int int2 =2;
comp *cal = int2;

谢谢

4

1 回答 1

2

如果您使用标准复数(即 是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;

但重申一下,无论你认为你必须做什么,你几乎肯定不想要一个指针。

于 2013-06-14T10:52:37.850 回答