|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
27.08.2011, 05:13 | #11 | ||
C++
Форумчанин
Регистрация: 27.03.2011
Сообщений: 803
|
Цитата:
Цитата:
Ищете информацию по C++?
cplusplus.com |
||
27.08.2011, 14:25 | #12 | |
Форумчанин
Регистрация: 02.02.2010
Сообщений: 599
|
Цитата:
"Лишь то читается легко, что написано с трудом; что в час написано, то в час и позабыто."
|
|
27.08.2011, 19:13 | #13 |
Пользователь
Регистрация: 26.08.2011
Сообщений: 16
|
народ поясните как вы это используете не пайму ?
f->Draw(); // Указатели друг другу равны, но для f будет вызвана другая функция, чем для c это как ? Последний раз редактировалось Stilet; 28.08.2011 в 11:00. |
27.08.2011, 19:33 | #14 |
somewhere else
Участник клуба
Регистрация: 17.07.2008
Сообщений: 1,409
|
Да очень просто используем:
Код:
"Тяжело в учении, легко в бою" - А.В. Суворов
Последний раз редактировалось Ivan_32; 27.08.2011 в 21:28. |
27.08.2011, 19:57 | #15 |
Пользователь
Регистрация: 26.08.2011
Сообщений: 16
|
Объектно-ориентированное программирование - это ООП надо полагать !!!
нужно сделать массив из разных типов значений а можно наверное сделать так чтобы его не делать каждый раз а просто запомнить и копировать уже сделанный такое возможна ??? вы ошиблись в мелочах но есть скобки надо ставить после библиотек ! class StringData : public IData это класс чегото ? поясните строки если не сложно или не в лом ? конец ясен начало странное !!! |
27.08.2011, 21:30 | #16 |
somewhere else
Участник клуба
Регистрация: 17.07.2008
Сообщений: 1,409
|
Чуть-чуть поправил, возможно так будет понятнее.
Вообще, я бы порекомендовал почитать Б.Страуструп Язык программирования C++, там у него такие вещи описаны.
"Тяжело в учении, легко в бою" - А.В. Суворов
|
27.08.2011, 22:02 | #17 |
Пользователь
Регистрация: 26.08.2011
Сообщений: 16
|
этот http://lib.ru/CPPHB/cpptut.txt
в общемто интересно это : Выбирающие операторы Значение можно проверить с помощью операторов if или switch: if ( выражение ) оператор if ( выражение ) оператор else оператор switch ( выражение ) оператор В языке С++ среди основных типов нет отдельного булевского (тип со значениями истина, ложь). Все операции отношений: == != < > <= >= дают в результате целое 1, если отношение выполняется, и 0 в противном случае. Обычно определяют константы TRUE как 1 и FALSE как 0. В операторе if, если выражение имеет ненулевое значение, выполняется первый оператор, а иначе выполняется второй (если он указан). Таким образом, в качестве условия допускается любое выражение типа целое или указатель. Пусть a целое, тогда if (a) // ... эквивалентно if (a != 0) ... Логические операции && || ! обычно используются в условиях. В операциях && и || второй операнд не вычисляется, если результат определяется значением первого операнда. Например, в выражении if (p && l<p->count) // ... сначала проверяется значение p, и только если оно не равно нулю, то проверяется отношение l<p->count. Некоторые простые операторы if удобно заменять выражениями условия. Например, вместо оператора if (a <= b) max = b; else max = a; лучше использовать выражение max = (a<=b) ? b : a; Условие в выражении условия не обязательно окружать скобками, но если их использовать, то выражение становится понятнее. Простой переключатель (switch) можно записать с помощью серии операторов if. Например, switch (val) { case 1: f(); break; case 2: g(); break; default: h(); break; } можно эквивалентно задать так: if (val == 1) f(); else if (val == 2) g(); else h(); Смысл обеих конструкций совпадает, но все же первая предпочтительнее, поскольку в ней нагляднее показана суть операции: проверка на совпадение значения val со значением из множества констант. Поэтому в нетривиальных случаях запись, использующая переключатель, понятнее. Нужно позаботиться о каком-то завершении оператора, указанного в варианте переключателя, если только вы не хотите, чтобы стали выполняться операторы из следующего варианта. Например, переключатель switch (val) { // возможна ошибка case 1: cout << "case 1\n"; case 2: cout << "case 2\n"; default: cout << "default: case not found\n"; } при val==1 напечатает к большому удивлению непосвященных: case 1 case 2 default: case not found Имеет смысл отметить в комментариях те редкие случаи, когда стандартный переход на следующий вариант оставлен намеренно. Тогда этот переход во всех остальных случаях можно смело считать ошибкой. Для завершения оператора в варианте чаще всего используется break, но иногда используются return и даже goto. Приведем пример: switch (val) { // возможна ошибка case 0: cout << "case 0\n"; case1: case 1: cout << "case 1\n"; return; case 2: cout << "case 2\n"; goto case1; default: cout << "default: case not found\n"; return; } Здесь при значении val равном 2 мы получим: case 2 case 1 Отметим, что метку варианта нельзя использовать в операторе goto: goto case 2; // синтаксическая ошибка но не очень понятно выбирающие кем прогой или человеком ? |
27.08.2011, 22:43 | #18 |
Старожил
Регистрация: 12.01.2011
Сообщений: 19,500
|
Мне кажется, что изучать С++ по Страуструпу не зная об операторах ветвления — не лучшая идея.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом. |
28.08.2011, 02:34 | #19 |
Software Engineer
Участник клуба
Регистрация: 07.04.2007
Сообщений: 1,618
|
Согласен
По соображениям хорошего стиля и хорошей читабельности. Ключевое слово struct мигрировало в C++ из C, и использоваться оно должно так, как использовалось в C, т.е. для объявления пользовательского типа данных, который содержит только переменные-члены. Иногда допускается конструктор, но никак не виртуальные функции и наследование
Мужество есть лишь у тех, кто ощутил сердцем страх, кто смотрит в пропасть, но смотрит с гордостью в глазах. (с) Ария
|
28.08.2011, 16:38 | #20 | |
C++ hater
СтарожилДжуниор
Регистрация: 19.07.2009
Сообщений: 3,333
|
2Blade
Цитата:
в общем случае, struct вместо class используется тогда, когда работаем либо с pod типом, либо с типом, который не может существовать сам по себе (те же функторы)
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay
My other car is cdr. Q: Whats the object-oriented way to become wealthy? A: Inheritance Последний раз редактировалось pproger; 28.08.2011 в 16:40. |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Полиморфизм | MasterSporta | Общие вопросы C/C++ | 3 | 10.04.2011 23:46 |
полиморфизм и констркуторы | blacktener | Общие вопросы C/C++ | 4 | 06.03.2011 15:47 |
полиморфизм | slayerblya | Общие вопросы C/C++ | 1 | 27.02.2011 01:43 |
Полиморфизм | mister2010 | Общие вопросы C/C++ | 30 | 24.05.2010 01:07 |