它非常简单,但我无法删除错误。我想在复杂变量中存储整数值。
int int2 =2;
comp *cal = int2;
由于
答案 0 :(得分: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;
但重申一下,无论你认为你必须做什么,你几乎肯定不想要指针。