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&lt;&lt; 以处理流。 重载 operator double 以从 Pair

第 4 项可能很困难,因为在给定 2 个整数的情况下,有无数个方程返回 double。您将需要更多信息或创建某种函数,如下所示:

  double operator double ()  return first * 4 + second;

编辑 1: 您可能还需要重载operator[]Pair 类看起来像一个整数数组。

【讨论】:

以上是关于C++ 对象数组初始化的主要内容,如果未能解决你的问题,请参考以下文章

C++对象数组与对象指针

C++ 对象数组初始化

C++中带括号的数组对象的初始化

在 C++ 中对象数组的定义处设置类对象数组的初始值

C++数组初始化方法

函数调用或构造函数调用中的 C++ 数组初始化