【问题标题】:Constructor for class类的构造函数
【发布时间】:2009-02-22 06:51:19
【问题描述】:

C/C++ 中 N 个元素的数组具有从 0 作为下限到 N-1 作为上限的下标。其他语言(如 Pascal)允许用户指定任何下限和上限下标值来创建(上限 - 下限 + 1)元素的数组。

问题:在 C++ 中创建一个类“Array”,允许用户指定两种形式的数组。数组中的每个元素都是一个浮点值。该类是为了最大限度地隐藏信息量。清楚地显示进入头文件 array.h 和源文件 array.cpp 的信息。头文件必须保证任何源代码文件中都不能存在头文件信息的多份。

谁能帮我解决这个问题?谢谢。

【问题讨论】:

  • 您在哪方面需要帮助?这个任务对我来说听起来很清楚。
  • 您应该在问题中明确说明这是一项家庭作业。另外,你的问题必须更清楚。有什么需要帮助的,是作业看不懂吗?
  • 你为什么不向我们展示你到目前为止所拥有的东西,也许你会得到一些指导
  • 这不是很好的 c++ 代码,而是一个开始:ddj.com/cpp/184403457
  • @libt:这不一定是件好事……我喜欢。

标签: c++ arrays


【解决方案1】:

将所有问题汇总。

弹出它们...

谁能帮我解决这个问题?

让我们看看。

头文件必须保证头文件信息的多个副本不能存在于任何源代码文件中。

听说过头球后卫吗?或者,#pragma?这是两种解决方案,但您必须弄清楚每种解决方案的优缺点。

清楚地显示进入头文件array.h和源文件array.cpp的信息。

您熟悉使用 C 或 C++ 进行编程吗?

该类是为了最大限度地隐藏信息量。

封装。任何关于 C++/OOD 的标准文本都会对您有所帮助。我们的想法是拥有接口并围绕它们构建代码。

数组中的每个元素都是一个浮点值

当然,为什么不呢?

在 C++ 中创建一个类“Array”,允许用户指定两种形式的数组。

当然。你还需要多维数组吗?您需要做的就是在这些表格之间进行翻译。您希望用户在使用您的数组类时使用什么语法?例如:流行的形式是使用 operator[] 访问数组元素,如 float_array[ i ] where i = 0, 1, ... N-1。

class Array {
   public:
     explicit Array(size_t n); // default array, C-style indexing
     Array(size_t begin, size_t end); // Pascal-style indexing
   private:
     float *_a;
};

这会让你开始。如果您还有其他问题,请告诉我们。

【讨论】:

    【解决方案2】:

    冒着过火的风险,我会选择模板化的解决方案。它更加优雅。可能是这样的:

    template<int START, int END>
    class Array
    {
       float operator[](int i) { ... }
    ...
    private:
       float m_data[END - START];
    
    };
    

    【讨论】:

      猜你喜欢
      • 2017-01-21
      • 2018-07-16
      • 1970-01-01
      • 2016-07-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-02-28
      • 2014-05-27
      相关资源
      最近更新 更多