Врят ли имеются в виду потоки, поэтому лучше использовать например циклы. for (int i = 0; i < N; i++) { MoveFirstCar(); MoveSecondCar(); sleep( ... ); } или же копай в сторону многопоточности ( см статью в "Статьях" )
Не , надо как раз много поточность , просто не могу найти норм инфу по ней, про машинки я привел ради примера))
Ничего лучше Джеффри Рихтера не найдете , читать просто обязательно , от корки до корки , можно и 2 раза.
Вот снова засел за с++, продолжаю обучение... В общем вопрос состоит в таком: я учу сейчас ссылки и указатели. Теперь пожалуйста, объясните мне, что возвращается в каждой(func и funk2) ф-и и почему. Заранее спасибо. Code: #include <iostream> using namespace std; class Cat { public: Cat() { cout << "constructor...\n"; } ~Cat() { cout << "destructor...\n"; } Cat(Cat&) { cout << "copy - constructor...\n"; } void SetAge( int age ) { Age = age; } int GetAge() const { return Age; } private: int Age; }; Cat &func(Cat &cat1) { cout << "func...\n"; cat1.SetAge(5); cout << "Age is " << cat1.GetAge() << endl; return cat1; } Cat *func2(Cat *cat1) { cout << "func2...\n"; cat1->SetAge(7); cout << "Age is " << cat1->GetAge() << endl; return cat1; } void main() { cout << "Making a cat1...\n"; Cat cat1; cout << "going to func...\n"; func(cat1); cout << "back to main...\n\n"; cout << "Making a cat2...\n"; Cat cat2; cout << "going to func2...\n"; func2(&cat2); cout << "back to main...\n\n"; }
Рано ему еще Рихтера читать. Возвращаются ссылка и указатель на измененный объект. код вижу не полностью так как с телефона. Вопрос почему странный. Потому что ты так их определил...
Меня интересует что содержится в ссылке, а что в указателе на момент возврата - адрес что-то другое... В чем разница, если я напишу так: Code: Cat &func2(Cat *cat1) { cout << "func2...\n"; cat1->SetAge(7); cout << "Age is " << cat1->GetAge() << endl; return *cat1; } а не так: Code: Cat *func2(Cat *cat1) { cout << "func2...\n"; cat1->SetAge(7); cout << "Age is " << cat1->GetAge() << endl; return cat1; } что означает значок * или & у имени ф-и? и что в итоге возвратится - адрес что-то другое?
ссылки сделаны для удобства использования. к методам класса ты будешь обращаться через ., а при указетеле через ->. Больше никакой принципиальной разницы нету. На уровне ассемблера в обоих случаях возвратится адрес.
При передаче аргумента по указателю использовать все время разименовывание обычно неудобно и код выглядит некрасиво, хотя здесь это не очень заметно.
Ra$cal, Fata1ex, спасибо. То есть если возле имени ф-и стоит значок ссылки или указателя, то ф-я должна вернуть адрес, я правильно понял?
Cat* func1(Cat *cat1) Cat& func2(Cat *cat1) Возможно так будет понятнее. То что стоит слева от названия функции в данном случае является типом возвращаемого значения. Т.е. первая функция возвращает указатель на объект класса Cat, а вторая ссылку на него.
нужно заюзать регулярки. скачал пак с оф-сайта (pcre.org), подключил либы, всё хорошо. только вот за прогой нужно таскать dll весом ~150 кб. есть несколько проблем: 1) убрать длл. что бы был только exe, и при этом он везде работало. 2) желательно - уменьшить размер. (там полно не нужных мне функций) пробовал сделать и то и другое. подключил к проекту нужные заголовки и файлы. всё-бы ничего, но компилятор ругается: пробовал подключать pcre либы и гуглить - не помогло. собственно сабж: как это сделать? либо, есть ли более лёгкие(возможно, менее функциональные) реализации регулярок?
попробуй регэкспы из буста поюзать. там есть статическая линковка. а на счет размреа - хз. там много кода нужно чтоб это работало. нужно идти на жертвы.
- format flags - i/o manipulators - функции класса ios - собственные функции ввода/вывода и манипуляторы
Советую тоже использовать буст, как подсказал коллега выше ) При статической линковке размер будет ~ +1m
заюзал буст. линковка вроде-бы статическая, правда я с ним натрахался, и пришлось юзать микромягкий компилятор(варнинг на варнигне, но компилится, и работает). простая прога с 1-й регуляркой и только 1 либой(boost/regex.hpp) висит 167 КБ. upx пакует ~до 80 кб. многовато, но подойдёт. щас попробую уменьшить размер. UPD линковка динамическая. меньше уже не будет, а если и будет, то это нужно слишком глубоко лезть..
Как будет выглядеть функция циклического сдвига влево для битов?, т.е. char a = 222; //a = 11011110 rotate(a); //a = 10111101