C++ 对象数组初始化
Posted
技术标签:
【中文标题】C++ 对象数组初始化【英文标题】:C++ array of objects initialization 【发布时间】:2017-06-19 14:38:45 【问题描述】:我必须编写其余的代码才能完成这项工作:
int main()
Pair p[2] = 7,21;
cout<< p[0] <<" , "<< p[1] <<endl;
double d[2] = p[0], p[1] ;
cout<< "d = " << d[0] <<" , "<< d[1] <<endl;
我做了一些尝试,但没有真正想出任何有意义的东西。
输出应该是
7 , 21
d = 7 , 21
这是我第二年的c++考试,有人知道吗?
【问题讨论】:
您有一个 两个Pair
对象的数组,您使用7, 21
显式初始化数组中的第一个元素 (p[0]
)。第二个元素 (p[1]
) 被隐式初始化为“零”(具体发生的情况取决于 Pair
类或结构以及它拥有的(可能的)构造函数以及它们的作用)。
哦,您可能应该带一些到read about how to ask good questions 并学习如何创建Minimal, Complete, and Verifiable Example。例如,您向我们展示了预期的输出,但 实际 输出是什么?
没有实际输出,因为它还没有完成......这就是我必须做的。
当您从 pair 数字转换为单个浮点 (double
) 时,您期望会发生什么?
请将编译器的警告设置调到最大。
【参考方案1】:
如果您的目标(您没有在帖子中说明)是设计Pair
课程以使程序正常工作,那么您的课程将需要以下内容:
-
接受 2 个参数的构造函数。
接受 0 个参数的构造函数。
重载
operator<<
以处理流。
重载 operator double
以从
Pair
。
第 4 项可能很困难,因为在给定 2 个整数的情况下,有无数个方程返回 double
。您将需要更多信息或创建某种函数,如下所示:
double operator double () return first * 4 + second;
编辑 1:
您可能还需要重载operator[]
。 Pair
类看起来像一个整数数组。
【讨论】:
以上是关于C++ 对象数组初始化的主要内容,如果未能解决你的问题,请参考以下文章