C ++ Array in Header - PullRequest
       8

C ++ Array in Header

0 голосов
/ 05 октября 2011

Я новичок в C ++, поэтому, пожалуйста, потерпите меня.

По сути, я создаю заголовок для одного из моих классов и попал в затруднительное положение.

Экземпляр рассматриваемого класса создается функцией Main (), теперь, когда создается этот экземпляр класса, я хочу передать длину массива. Однако я не могу этого сделать, если он объявлен статически в заголовке, верно?

Есть какие-нибудь решения? Извините, это, вероятно, очень просто, но я работаю на Java, я пытаюсь не делать что-то на Java.

Спасибо.

Ответы [ 2 ]

2 голосов
/ 05 октября 2011

Если вы программируете на C ++ и хотите объявить массив переменного размера, то, скорее всего, вы не хотите использовать «встроенный» массив в стиле C ». Это что-то вроде инструмента «гайки и болты».

Вы, вероятно, хотите использовать std::vector вместо этого. Этот класс является более гибким и не требует указания размера в точке объявления. Вы можете найти учебники по его использованию в Интернете, но вот случайный от Google:

http://www.yolinux.com/TUTORIALS/LinuxTutorialC++STL.html#VECTOR

Интересным аспектом C ++ является то, что, хотя векторы являются «библиотечным кодом» и классом, который вы могли бы написать самостоятельно, не изменяя компилятор, они допускают доступ с удобством обозначений, таким как скобки. Некоторые плюсы от faq и некоторые минусы от fqa, представленные здесь, принимают обе стороны с зерном соли:

http://yosefk.com/c++fqa/operator.html

Хотя использование голой металлической абстракции массива в стиле C имеет некоторые преимущества в производительности, std::vector почти наверняка быстрее, чем массивы Java, и в большинстве случаев является лучшим выбором.

0 голосов
/ 05 октября 2011

Если я вас правильно понимаю, вы хотите получить размер статически типизированного массива и передать его классу?

Если это правильно, взгляните на http://ideone.com/JLoZY, это первоеэто пришло мне в голову.

По сути, компилятор заполняет необходимые параметры шаблона, поэтому вам не нужно беспокоиться о них.Это может быть легко принято для использования в других сценариях

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...