Сейчас использую Code::Blocks. Насколько правилен выбор компилятора/IDE ?Если очень хочется изучить настройки среды и разницу между различными сборками mingw, то это отличный выбор: MinGW придётся заменять. На 64-битный, с поддержкой последнего стандарта и главное с поддержкой стандартных тредов. Можно использовать Visual Studio: она бесплатна, нативна для Windows и адекватно работает с потоками в отличие от кривоватого порта winpthreads. Можно взять и другие IDE и поключить их к сборке clang'а. При этом держать визуалку всё равно придётся, так как clang под виндой использует её стандартную библиотеку.
Что посоветуете дальше?Если чувствуете, что с литературой для новичков покончено, начните что-либо делать. После постановки задачи, ищите углублённую литературу по теме задачи.
Порекомендуйте, как оптимальнее сочетать теорию/практику?Любая теория должна сопровождаться практикой. Узнали что-то новое? Используйте это где-нибудь, хоть в тестовой программе созданной специально для этого. Пробуйте пока полностью не поймёте как это работает. + Должна быть дополнительная практика где вы будете систематизировать полученные знания и использовать их вместе.
Вот если указано return 0; - то программа закончиться.Я правильно понимаю?Только если это return в main().
А если ничего не указать?Она будет в памяти висеть или что?С 1998 года она выполнит return 0 (опять же, справедливо только для main() ) как только достигнет конца функции main().
Т.е. если указываешь 0, то это типа false.Это EXIT_SUCCESS.
А если указать 1?Implementation defined. Обычно работает так же как и EXIT_FAILURE.
Замещается в любом случае, что с const , что без const..Уверены что не скрывается? Пробовали через указатель на базовый класс вызвать функцию? Или объявить её с override чтобы компилятор поймал ошибку.
int& x;
x = 10;
Нужно указать на что будет ссылаться x. В вашем случае нужно использовать member initializer list (вообще это хорошая идея инициализировать всё там чтобы избежать оверхэда):Person::Person(string name, Address& address) :
_name(std::move(name)), //Поддерживаем move-семантику
_address(address)
{}
Где брать ответы к Липпманским заданиям?ТАм ведь половина заданий «найди ответ в тексте главы», а другая «напиши программу с таким поведением». Вообще примеры программ легко гуглятся, например вот.
Какую бы кингу выбрали бы вы на моем месте?Липмана и Му, однозначно.
На каком языке лучше читать такие книги?Английский. Он всё равно будет необходим для прграммиста, так как большинство нужной информации не переведено. Ну и в добавок избавляет от ошибок внесённых переводом.
Если так, то заявляет, что использована не инициализированная переменная s
const std::size_t buf_len = 260;
LPTSTR s = new TCHAR[buf_len];
auto path_len = GetModuleFileName(GetModuleHandle(NULL), s, buf_len);
char* end = buf + strlen(buf) - 1;
while(end > buf && isspace(*end))
--end;
*(end+1) = 0;