N个元素的C / C ++中的数组具有从0开始的下标作为N-1的下限作为上限。其他语言(如Pascal)允许用户指定任何下限和上限下标值,以创建(上限 - 下限+ 1)元素的数组。
问题:在C ++中创建一个类“Array”,允许用户指定两种形式的数组。数组中的每个元素都是浮点值。该类是为了最大化信息隐藏量。清楚地显示进入头文件array.h和源文件array.cpp的信息。头文件必须保证头文件信息的多个副本不得存在于任何源代码文件中。
有人可以帮我这个吗?感谢。
答案 0 :(得分:2)
将所有问题都堆叠起来。
弹出它们......
有人可以帮我这个吗?
让我们看看。
头文件必须保证头文件信息的多个副本不得存在于任何源代码文件中。
有没有听说过后卫?或者,#pragma?这是两个解决方案,但你必须弄清楚每个解决方案的优缺点。
清楚地显示进入头文件array.h和源文件array.cpp的信息。
您熟悉使用C或C ++进行编程吗?
该课程旨在最大限度地提高信息隐藏量。
封装。 C ++ / OOD上的任何标准文本都会对您有所帮助。我们的想法是拥有接口并围绕它们构建代码。
数组中的每个元素都是浮点值
当然,为什么不呢?
在C ++中创建一个类“Array”,允许用户指定两种形式的数组。
不确定。你还需要多维数组吗?您需要做的就是在这些表单之间进行转换。您希望用户在使用数组类时使用什么语法?例如:流行的形式是使用operator []访问数组元素,如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;
};
那会让你开始。如果您有更多问题,请告诉我们。
答案 1 :(得分:0)
冒着超越这个的风险,我会采用模板解决方案。它更优雅。这样的事情可能是:
template<int START, int END>
class Array
{
float operator[](int i) { ... }
...
private:
float m_data[END - START];
};