Должен ли я использовать классы для чего-то простого, например, для решения математических задач? - PullRequest
1 голос
/ 03 января 2012

Это вопрос об использовании объектно-ориентированного языка. Некоторое время я использовал C ++ для решения Project Euler, и недавно я прочитал в статье, что многие люди относятся к C ++ как к процедурному языку, так как вы можете обойтись без создания классов. Я делал именно это.

Мой вопрос заключается в том, "плохо" ли просто писать функции на объектно-ориентированном языке int mult_order(int base, int mod) для мультипликативного порядка, gcd(int a, int b) для gcd, но без помещения их в класс). Я много «изобретал велосипед» с целью обучения - я должен поместить их в библиотеку или создать класс Math или что-то в этом роде?

Ответы [ 3 ]

3 голосов
/ 03 января 2012

Из того, чему меня учили (и того, что я испытал), основная идея ООП проста:

Используйте ее, когда она облегчит вашу жизнь.

Вполне возможно, что для вашей цели использование класса не упростит задачу - у вас нет причин повторно обращаться к одному объекту, который выполняет эти математические операции, или создаватьclass создаст ненужные накладные расходы.

Для вашего примера, я думаю, что у вас все будет в порядке без объектов, но учтите, что где-то в будущем, возможно, потребуется создать объект, который сможет обрабатывать эти операции.

1 голос
/ 03 января 2012

Кажется, вам нужно использовать namespace вместо class.

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

Используйте класс, когда вам нужны свойства для объекта или наследования, или состояния, а не только для того, чтобы вы могли группировать функции вместе.

0 голосов
/ 03 января 2012

Основное преимущество использования классов - повторное использование через наследование.Так что, если вы обнаружите, что у вас есть ситуации, когда у вас есть какой-то общий код, а затем другие разделы кода, которые являются вариациями этого, создание классов вам поможет.Если нет, то вы, вероятно, в порядке, как вы.Не все проблемы должны решаться с помощью объектно-ориентированного программирования.

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