Заблокирован Статус: Не в сети Регистрация: 26.07.2006
Turbo C++ v3.0 Ща попробую на Борланд билдер 6.
А если я создам методы то получится что он без них приобразовывать не сможет, или я что-то недопонимаю? Добавлено спустя 3 минуты, 28 секунд Опа.... А на борланде все на раз закомпилилось... Почему Турбо Си++ не прокатывает?
Member
Статус: Не в сети Регистрация: 24.09.2004 Откуда: Belarus, Mensk
GrIfFiN7 писал(а):
или я что-то недопонимаю
Нет, все правильно. Мое IMHO: не стоит увлекаться неявными преобразованиями. Да и вообще если класс никак не связан с простым типом, то лучше организовать все в виде методов типа GetInt() и GetChar().
_________________ ruSpiegel.net - русское зеркало дотнета
Ваши любимые статьи и блоги, посвященные Microsoft .NET Framework, теперь и на русском языке.
Member
Статус: Не в сети Регистрация: 02.04.2006 Откуда: KyiV
Здравствуйте , уважаемые форумчане. Вот совсем недавно приступил к изучению языка cpp. дошел до операторов if else и тут появился какой-то непонятный подводный камень.Например, элементарная программка
работает неправильно. при ввобде любого числа она отвечает все время Yes, при этом, если я поменяю if (number=2) на if (number=0) то будет все-время отвечать NO, я просто с ума с хожу, не могу понять, почему не работает. Пожалуйста, помогите ЗЫ использую компилятор visual studio 6
Member
Статус: Не в сети Регистрация: 17.11.2003 Откуда: Петроской
хотел вот что спросить: имеются ли в С++ какие-либо "свои" библиотеки для работы с системными функциями или сетью, потому как пробывал включать всякие sys/stat.h unistd.h в стиле include <cunistd> но говорит типа нету. Неужели все-все включают всегда в глобальное пространство имен, посредством <***.h> ?
Заблокирован Статус: Не в сети Регистрация: 26.07.2006
mussy = в С++ это не "равно" а "приравнивание". А "равно" - ==. У тебя в условии переменная number приравнивается к числу 2, а число больше нуля - это true. Как у STXTSS там нужно поставить оператор ==.
Member
Статус: Не в сети Регистрация: 14.01.2004 Откуда: Киев, Украина
mussy старая как мир уловка, оператор присваивания и сравнения. maslyak это посиксовые либы, для сети тебе нужен Winsock, системные функции, я так полагаю Win32 API.
_________________ Ку ку
Последний раз редактировалось Daemon 02.05.2011 22:41, всего редактировалось 1 раз.
Member
Статус: Не в сети Регистрация: 12.12.2003 Откуда: Уфа
Читаю Майерса, Эффективное использование c++ - он говорит, что наследование от стандартных контейнеров - зло, потому что у них деструкторы невиртуальные. Но если я, допустим, наследуюсь от std::list, и добавляю туда пару параметров и функции для работы с ними, и никаких указателей не использую, то зачем мне применять композицию - тогда придется добавлять в мой класс обертки для методов контейнера - push_back, push_front, size() и т.д. Это ведь трудоемко и как-то не по ООП. Кто как решает такие задачи?
Member
Статус: Не в сети Регистрация: 14.01.2004 Откуда: Киев, Украина
kexman да, если ты не выделяешь никакой памяти в своем классе, то тебе побоку на виртуальные деструкторы. Метод с обертками - вполне такой себе ООП подход, посмотри паттерн адаптер, там как раз такое применяется. Выглядит конечно как костыль. Такие задачи решаются взависимости от конкретных требований.
Member
Статус: Не в сети Регистрация: 18.11.2002 Откуда: не вернуться
Кстати, есть вопрос (правда больше о морали чем о программировании)
Есть код
Код:
main () { unsigned int max = 10000000; unsigned int i, j; unsigned short f[max]; for(i = 2; i < max; i++) { if (f[i] != 1) { printf("%07d\n", i); for(j = i * i; j < max; j += i) { f[j] = 1; } } } }
Писался он ради одного запуска по этому возможно качество кода не супер, с другой стороны хотелось бы узнать есть ли (в частности в этом коде) какие нибудь мелочи которые нормальным программистам было бы видеть "неприятно" (по аналогии с "дурным тоном" в HTML)
(а то в книгах этот вопрос как-то не широко освещён)
_________________ Летели гуси-лебеди, а им навстречу - воробьи-пингвины и соловьи-страусы...
Member
Статус: Не в сети Регистрация: 18.11.2002 Откуда: не вернуться
mein писал(а):
Кавычки ставишь как
Ну с кавычками проблем вообще не испытываю, в РНР они такие же, а РНР код я уже вроде научился писать (по крайней мере много готовых скриптов перекопал и знаю что читается удобно а что нет)
А вот что касается
mein писал(а):
не все компиляторы съедят
этого я знать не мог (пишу в основном интуитивно, в книжки не особо часто смотрю, а GCC вроде нармально хавает)
mein писал(а):
i у нас от 2 до max, а max у нас большой. Соответственно i * i легко переполнится(4 байта всего для int). Или это часть хитрого алгоритма ?
Ну хитрого там ничего нет, типичное "решето Эратосфена", а на счёт переполнения логично, не посмотрел (то-то он у меня на спектруме зависет, я уж было подумал что компилятор глючный)
_________________ Летели гуси-лебеди, а им навстречу - воробьи-пингвины и соловьи-страусы...
Member
Статус: Не в сети Регистрация: 14.01.2004 Откуда: Киев, Украина
Я заметил, что не ответил на поставленный выше вопрос: kexman
Цитата:
Думаю тоже какой-нибудь прикольный язык начать осваивать, типа Python или Hascell(не знаю как пишется). Думаю интересно.
Ну Хаскель, и функциональное программирование это пока джаст фо фан. А вот Python и С++ идут рука об руку, особенно что касается никс систем. Плюс Питон - язык широкого применения, имеет кучу биндов, к тем же QT, GTL+, заканчивая веб разработкой, типа Django, Turbogear. Даже реализация рефлекшен для С++ из Буста, использует питон.
Цитата:
Вопрос есть, как к профессионалу, можно ли научиться программированию, не имея специального образования?
Мне до профессионала еще далеко. Сам получаю инжинерную специальность. По идее я проектировщик, но незнаю ни VHDL, ни Verilog. С другой стороны, а что мне дал ВУЗ как программисту? Честно - ничего толкового, разве что на первом курсе предмет был Структуры данных и алгоритмы, чуть-чуть Кнута, Дейкстра. А такие вещи как теория построения компиляторов, не думаю что особо пригодится. Хотя фактически втроем написали компилятор паскаля для i8080, жуткий процессор Так что ответ - конечно да, главное - желание, и способности конечно.
GrIfFiN7 использование static_cast по-идее должно выручить. Добавлено спустя 4 минуты, 49 секунд maslyak так какие проблемы, делаем man recv к примеру и видим:
ssize_t recvmsg(int s, struct msghdr *msg, int flags);
Вот и все. virus Если это С, то дурной тон здесь, только невнятные названия переменных, max лучше сделать #define MAC_ARRAY_SIZE 100000. Ну и i*i вносит сомнения.
Member
Статус: Не в сети Регистрация: 17.11.2003 Откуда: Петроской
Daemon проблема в том, что это не соответствует духу ООП, хотелось бы использовать try{} catch{} а также чтобы все переменные не висели в глобальном пространстве имен
Member
Статус: Не в сети Регистрация: 09.08.2005 Откуда: Земля
Здравствуйте, помогите дописать программу
Дана матрица A[i j]. Получить матрицу B[i j] путём упорядовачиния строк исходной матрицы по возрастанию количества одинаковых элементов в каждой сторке. Пишу с динамическим массивом и функцией
Заранее спасибо!
a=calloc(n,sizeof(double *)); b=calloc(n,sizeof(double *)); for (i=0;i<n;i++) { *(a+i)=calloc(m,sizeof(double)); *(b+i)=calloc(m,sizeof(double)); } for (i=0;i<n;i++) for (j=0;j<m;j++) scanf("%lf",*(a+i)+j);
for (i=0;i<n;i++) {printf("\n"); for (j=0;j<m;j++) printf("%.3lf ",*(*(a+i)+j)); }
Member
Статус: Не в сети Регистрация: 12.12.2003 Откуда: Уфа
Вопросик есть - по поводу auto_ptr - когда его использовать? А когда обычные указатели+delete?
Сегодня вспомнил, как около полугода назад у меня "hellow world" не компилировалась. Поискал по инету, у всех была эта проблема, забывали using namespace std; писать:) И я упорно не понимал смысл этой фразы, поэтому писал ее просто не понимая. Вспомнил собственно потому что в книжке читал главу про пространства имен, теперь знаю чем отличаются using-директивы от using-объявлений) В этом на мой взгляд самая главная особненность c++ - вначале, ну нихрена не понятно, зато потом, в 1 прекрасный момент приходит понимание всей мощи:) (имею в виду, что понимаешь, что язык очень мощный, а не то что всю эту мощь знаешь и используешь)
Книжку по c++("С++ вводный курс", Липпман, Лажойе, 3 издание) я купил 2 года назад, хотел изучать, но честно говоря не понял там ровным счетом ничего, потому что ожидал, что в книге по языку программирования должна быть примерно такая структура:
1)переменные
2)операторы
3)арифметические функции
4)работа с графикой
и так далее. А там на меня обрушились все эти перегруженные функции, неймспейсы, конструкторы и виртуальные деструкторы В общем я разочаровался, и подумал, что зря потратил деньги. Зато сейчас понял, что купил очень хорошую книгу )
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения