2009-02-22 134 views
-1

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

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

有人可以帮我吗?谢谢。

+0

你需要哪些帮助?这项任务听起来很清楚。 – 2009-02-22 06:59:10

回答

2

将所有问题推送到堆栈中。

膨化他们...

任何人可以帮助我吗?

让我们来看看。

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

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

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

您是否熟悉使用C或C++编程?

该类是最大化信息量隐藏。

封装。 C++/OOD上的任何标准文本都可以帮助你。这个想法是有接口并围绕它们构建你的代码。

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

当然,为什么不?

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

当然。你是否也需要有多维数组?你所需要做的就是在这些表格之间进行翻译。您希望用户在使用数组类时使用什么语法?例如:流行的形式是使用运算符[]访问数组元素,如float_array [i],其中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; 
}; 

这会让你开始。让我们知道你是否有更多问题。

0

冒着冒着这种风险,我会去模板化的解决方案。它更优雅。像这样的东西可能是:

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

};