Иван Соломенников: тогда, если потянет на другие языки, "кресты" смело задвигайте в конец списка. Лучше уж Жабу какую-нибудь, у нее свои интересные нюансы по ООП.
Иван Соломенников: Вы практически открытым текстом написали, что всерьез и надолго писать на "крестах" не собираетесь. Это значит, что вы ничему полезному не научитесь, увы. "Не след и начинать".
Вопрос-то не "нужен ли", а "чем может быть полезен". Я, хорошо зная С++, уверен, что мне это знание помогает.
Но ТС, конечно, занимается ерундой. С++ нельзя выучить по учебнику. Только руками, за годы практики. Простое же знание синтаксиса не даст вообще ничего.
Столбцы "Тип" и "Уровень", позволяющие отличить пос. Солнечная от ул. Солнечная и от турбазы "Солнечная". Нет, хранить его с именем не надо, пользователи знают пятнадцать способов сократить слово "бульвар"
Павел Тананыхин: функция должна делать одно дело, и делать его хорошо.
То есть совершенно не зная, какой код ее вызывает, и не вынуждая этот код знать, что происходит внутри нее. Например, функция, которая получает массив и элемент и возвращает массив с этим элементом (добавленным или уже существующим).
Абстракция "массив с 0 элементов" - это верная дорога к сегфолту. Или у вас есть массив, или его нет совсем.
Павел Тананыхин: да. Функции не должны возвращать "либо", только тогда можно спокойно забыть, что внутри них находится.
Собственно, вы сами тут же налажали с использованием такой функции.
pixik: Для чего-то чуть сложнее ini требуется что-то чуть сложнее банального ввода-вывода. На "крестах" это будет класс размером в один экран.
Ну, в два, если для ini-файла нужно найти кроссплатформенно подходящее место. Правда, в этом случае вы, скорее всего, уже используете кроссплатформенную библиотеку, которая имеет средства для таких пустяков.
pixik: JSON имеет тенденцию к превращению в нечитаемую и нередактируемую человеком простыню. Его достоинства по сравнению с XML, например, совершенно ничтожны на таких тривиальных данных, как конфиг программы.
Ну, а если эти данные не структурированы каким-то сложным образом, то старый добрый .ini по-прежнему остается оптимальным решением.
Алексей Ярков: Классический метод "разборки с болваном".
Если должно работать, но не работает, берешь первого попавшегося человека и начинаешь объяснять ему, почему оно должно работать - до тех пор, пока не воскликнешь "Вот я болван!" и не исправишь ошибку ;)