Конструктор для класса


-1

Массивы в элементах C/C++ из N имеют нижние индексы от 0 как нижнюю границу до N-1 как верхнюю границу. Другие языки, такие как Pascal, позволяют пользователю указывать значения нижних и верхних индексов для создания массива элементов (верхняя граница - нижняя граница + 1).

Вопрос: Создайте класс «Массив» на C++, который позволяет пользователю указывать обе формы массивов. Каждый элемент массива будет значением с плавающей запятой. Класс состоит в том, чтобы максимально увеличить объем информации. Четко покажите информацию, которая попадает в файл заголовка array.h и в исходный файл array.cpp. Файл заголовка должен гарантировать, что несколько копий информации файла заголовка не должны существовать в каком-либо файле исходного кода.

Может ли кто-нибудь помочь мне с этим? Благодарю.

  0

С какой частью вам нужна помощь? Назначение звучит довольно ясно для меня. 22 фев. 092009-02-22 06:59:10

  0

Вы должны четко указать в своем вопросе, что это домашнее задание. Кроме того, ваш вопрос должен быть более ясным. С чем вам нужна помощь, разве вы не понимаете задание? 22 фев. 092009-02-22 07:00:15

  0

почему бы вам не показать нам, что у вас есть, и, может быть, тогда вы получите немного руководства 22 фев. 092009-02-22 07:01:09

  0

это не хороший код C++, но запуск: http://www.ddj.com/cpp/184403457 22 фев. 092009-02-22 07:03:15

  0

@libt: Это не обязательно хорошая вещь .... Мне это нравится. 22 фев. 092009-02-22 07:15:50

  0

dmckee, вы имеете в виду, что вам нравится код или идея иметь C++ как pascal? в любом случае мне нравится общая идея, но мне не очень нравится код. но я думаю, что это может быть полезно для неизвестного (google) :) 22 фев. 092009-02-22 07:31:08

  0

Я имею в виду, что код там, помимо того, что он идиоматически тупой, кажется довольно сложным, чем могла бы дать моя оценка OP. Вы отдаете ему или ей шанс попасть в настоящую беду ... 22 фев. 092009-02-22 16:29:16

2

Надевание всех ваших вопросов в стеке.

Popping их ...

Может кто-нибудь помочь мне с этим?

Давайте посмотрим.

Файл заголовка должен гарантировать, что несколько копий информации файла заголовка не должны существовать в каком-либо файле исходного кода.

Когда-либо слышал о защитнике заголовка? Или, # прагма? Это два решения, но вам нужно разобраться в плюсах и минусах каждого.

Пояснить информацию, которая попадает в файл заголовка 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]; 

};