在复变量中存储整数值

时间:2013-06-14 10:47:45

标签: c++ integer complex-numbers

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

int int2 =2;
comp *cal = int2;

由于

1 个答案:

答案 0 :(得分:2)

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

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