Comments 70
"public interface IWHWGRWGRDao : IDao"
Если нетрудно, разъясните, пожалуйста, идею шутки. Мне интересно, но, к сожалению, никак не могу додуматься.
Заранее, спасибо.
Если нетрудно, разъясните, пожалуйста, идею шутки. Мне интересно, но, к сожалению, никак не могу додуматься.
Заранее, спасибо.
(высоко глядя в небо с умным взглядом) Дао
Ну как в чём, пришёл поэт и дал своему совершенному интерфейсу название - Dao. Быть может он, конечно, имел в виду приземлённый Database Access Object, а быть может и то, самое высокое, DAO! А за ним пришёл ремесленник и... напачкал... IWHWGRWGR... Впрочем, быть может, он также имел в виду первые буквы строк 148-го сонета Шекспира. Bkb 156-го. Я в них иногда путаюсь.
Не скомпилируется, так как открытое (public) ДАО - не есть истинное дао.
неужели я тут один, кто не понимает, в чем прикол следующего?
int* var;
...........
*var++;
прошу разъяснить
int* var;
...........
*var++;
прошу разъяснить
это рандомайз такой, инкрементим указатель и получаем "черти что и сбоку бантик", стоящий на sizeof дальше.
А по моему получаем AV.
мы получаем все что угодно, так как var не объявлена указателем на массив, дальнейшее поведение указателя не предопределено.
Какой еще указатель на массив, такие вещи вообще редко используются (аля int (*pInt)[5];)? Там может быть сколь угодно памяти выделено. Пример нормальный и работать будет, нужно бОльший кусок выкладывать, который будет объяснять бессмысленность ситуации:)
Вы путаете указатель на массив с массивом указателей.
Это конечно не относится к теме, но не приведете ли пример. По моей памяти:
Массив указателей: int *pArr[5];
Указатель на массив: int (*pArr)[5];
В любом случае, как писал человек, ничто не мешает сделать так :) http://habrahabr.ru/blog/humour/42862.ht…
Массив указателей: int *pArr[5];
Указатель на массив: int (*pArr)[5];
В любом случае, как писал человек, ничто не мешает сделать так :) http://habrahabr.ru/blog/humour/42862.ht…
у [] больший приоритет, чем у *
Отсюда делаем вывод, что скобочки вот там вот, это как раз для повышения приоритета оператора :)
Нет, не нужно. Если бы речь шла о том, чтобы передвинуть указатель и использовать
разыменованное значение, то сразу возникает вопрос — где тут используется
значение? Нигде. Указатель просто разыменовывается, и всё.
разыменованное значение, то сразу возникает вопрос — где тут используется
значение? Нигде. Указатель просто разыменовывается, и всё.
Приоритет операции ++ выше, чем операции *, отсюда и бессмысленность.
нормальный код, где-нибудь в "......" var чему-нибудь присваивается
но ведь там могло быть
int* var;
var = new int[5];
*var++;
int* var;
var = new int[5];
*var++;
напоминает идеи некоторых сайтов выкладывать собрания цитат с одного известного сайта
Когда говорят про приколы в коде, всегда вспоминаю это:
Программистский шедевр на индусском форуме на тему "как узнать завтрашнюю дату":
или это:
Программистский шедевр на индусском форуме на тему "как узнать завтрашнюю дату":
void get_tomorrow_date( struct timeval *date )
{
sleep( 86400 ); // 60 * 60 * 24
gettimeofday( date, 0 );
}
или это:
MessageBox(NULL, "Вы действительно хотите удалить выделенный объект?", "Внимание", MB_OK |MB_ICONQUESTION);
Да ладно индусы, вчера натравил профайлер на один скрипт, накопал вот такой кусок:
через который проходит больше 600тыс. строк.
$line = fgets($fp);
$line = preg_replace("/\r*\n/", '', $line);
через который проходит больше 600тыс. строк.
void get_tomorrow_date( struct timeval *date )
{
timemashine( 86400,Forward ); // 60 * 60 * 24
gettimeofday( date, 0 );
timemashine( 86400,Back ); // 60 * 60 * 24
}
{
timemashine( 86400,Forward ); // 60 * 60 * 24
gettimeofday( date, 0 );
timemashine( 86400,Back ); // 60 * 60 * 24
}
* дико ржот над get_tomorrow_date, пугая всех окружающих *
Ну вообще большинство примеров довольно нормальные и говорят сами за себя
1. к примеру если ссылочный тип для була
2. ну это надо в контексте проги смотреть
6. вообще не понял, а где тут прикол?
7 и 8. правильный подход, чтобы был читабельный код
и т.д.
1. к примеру если ссылочный тип для була
2. ну это надо в контексте проги смотреть
6. вообще не понял, а где тут прикол?
7 и 8. правильный подход, чтобы был читабельный код
и т.д.
7 - умножение сущностей без необходимости
8 - очень правильно с т.3. и читабельности, и рефакторинга
8 - очень правильно с т.3. и читабельности, и рефакторинга
Никто и никогда не убедит меня, что ONE читабельней 1.
Мне в школе на уроках русского языка говорили, что цифры читабельней.
А NUM_HANDS — действительно разумно. Тут даже на с точки зрения «изменится», а просто смысл который мы вкладываем в цифру 2.
Мне в школе на уроках русского языка говорили, что цифры читабельней.
А NUM_HANDS — действительно разумно. Тут даже на с точки зрения «изменится», а просто смысл который мы вкладываем в цифру 2.
Я бы мог убедить. :) Не в том, что читабельнее, а в том, что иногда приходиться и такое
делать. По крайней мере, мне в Си++ приходилось.
делать. По крайней мере, мне в Си++ приходилось.
Я бы с радостью послушал.
Т.е. использовали константу ONE вместо один.
Расскажите зачем, если вам не сложно.
Т.е. использовали константу ONE вместо один.
Расскажите зачем, если вам не сложно.
Зато потом константу можно единожды изменить:
public static final int ONE = 2;
Как говорит мой знакомый: "чтобы процесс изучения кода был более творческим" :)
public static final int ONE = 2;
Как говорит мой знакомый: "чтобы процесс изучения кода был более творческим" :)
Ужас какой. Вроде, днём писал ответ. Сейчас заглядываю — нет ответа. Второй раз такое.
Надо срочно что-то делать.
[вздыхает]
Ладно, попробую ещё раз. Речь о разработке "умеренно сложных" алгебраических структур
средствами Си++ с использованием шаблонов. Например, пишем класс квадратных матриц
и добавляем метод создания единичной матрицы (все элементы равны 0, кроме элементов
на главной диагонали, которые равны 1):
И этот метод прекрасно работает со всеми встроенными числовыми типами. Но предположим,
что нам нужна матрица векторов (в математическом смысле, не std::vector). Для вектора
может быть не реализован метод operator=(int) (в нём не так много смысла).
Если класс вектора разрабатываем не мы сами, то расширить его методом operator=(int)
мы не можем (он унарный). Облом?
Нет. Решение заключается в том, чтобы завести отдельный шаблонный класс numeric_consts
и специализировать его для всех встроенных типов:
Код внутри Matrix станет таким:
При появлении нового типа, мы можем специфицировать numeric_consts для него
самостоятельно.
Надо срочно что-то делать.
[вздыхает]
Ладно, попробую ещё раз. Речь о разработке "умеренно сложных" алгебраических структур
средствами Си++ с использованием шаблонов. Например, пишем класс квадратных матриц
и добавляем метод создания единичной матрицы (все элементы равны 0, кроме элементов
на главной диагонали, которые равны 1):
template<typename T, int size>
Matrix<T, size> Matrix<T, size>::identity() const
{
Matrix<T, size> result;
for(int i = 0; i < size; i++)
for(int j = 0; j < size; i++)
result[i][j] = (i == j)? static_cast<T>(1) : static_cast<T>(0);
return result;
}
И этот метод прекрасно работает со всеми встроенными числовыми типами. Но предположим,
что нам нужна матрица векторов (в математическом смысле, не std::vector). Для вектора
может быть не реализован метод operator=(int) (в нём не так много смысла).
Если класс вектора разрабатываем не мы сами, то расширить его методом operator=(int)
мы не можем (он унарный). Облом?
Нет. Решение заключается в том, чтобы завести отдельный шаблонный класс numeric_consts
и специализировать его для всех встроенных типов:
template<>
class numeric_consts<float>
{
public:
static float zero() { return 0.0F; }
static float one() { return 1.0F; }
. . .
}
Код внутри Matrix станет таким:
result[i][j] =
(i == j)? numeric_consts<T>::one() : numeric_consts<T>::zero();
При появлении нового типа, мы можем специфицировать numeric_consts для него
самостоятельно.
по поводу ONE можно поспорить, все зависит от контекта программы, может это индекс первого элемента и вполне вероятно, что значение может измениться на 0.
/* lie in your comments */
Нумерация пунктов у вас интересная...
static const int NUM_HANDS = 2;
На будущее, на всякий случай?
Какие же вы все искуственные.
MAYBE меня просто убил!
А где 2-й пункт? Почему два третьих? =)
JavaScript-функция с сайта с лучшей капчей в мире:
//Function to open pop up window
function openWin(theURL,winName,features) {
window.open(theURL,winName,features);
}
vBulletin 2.4.5 nullified by (кто-то там):
function mood($str) {
return $str;
}
function mood($str) {
return $str;
}
Видел в коде вот такое (PHP):
function dat(){
// ф-я возвращает правильную текущую дату в формате YYYYMMDD
$y=date("Y");
if($y<10)$y="0".intval($y);
$m=date("m");
if($m<10)$m="0".intval($m);
$d=date("d");
if($d<10)$d="0".intval($d);
return $y.$m.$d;
};
while (2 +2 == 4) {
//...
}
//...
}
с баша в тему:
Shiry:Прикинь. У нас препод по физике ставит автоматы тем кто прогу ему демонстративную напишет, чтоб там графики, амплитуды показывала итд. Короче подошли с друзьями, он нам сказал прогу какого то вьетнамца с паска перевести в делфи. Бля, так этот далбайоп все коменты и переменные с функциями на вьетнамском назвал!!! сча самые перлы скину.
Shiry:var view,cot,hang,maunen,maudothi,maukhung,quay:integer;
комент, бля.. )
toado,toado1:array[1..2,1..2] of integer; {luu tdo cua vung anh dua vao bo nho}
KruGoZor Кот понра)
Shiry:procedure xuly;
procedure xulymenu;
procedure chuyendulieu;
procedure xoamanhinh;
procedure xulyphim;
Вот блин и чо эти процедуры делают?))
KruGoZor Я понил тока ту каторая делает меню (xulymenu)
KruGoZor Еще есть каторая ничо ниделает (chuyendulieu)
Shiry:Прикинь. У нас препод по физике ставит автоматы тем кто прогу ему демонстративную напишет, чтоб там графики, амплитуды показывала итд. Короче подошли с друзьями, он нам сказал прогу какого то вьетнамца с паска перевести в делфи. Бля, так этот далбайоп все коменты и переменные с функциями на вьетнамском назвал!!! сча самые перлы скину.
Shiry:var view,cot,hang,maunen,maudothi,maukhung,quay:integer;
комент, бля.. )
toado,toado1:array[1..2,1..2] of integer; {luu tdo cua vung anh dua vao bo nho}
KruGoZor Кот понра)
Shiry:procedure xuly;
procedure xulymenu;
procedure chuyendulieu;
procedure xoamanhinh;
procedure xulyphim;
Вот блин и чо эти процедуры делают?))
KruGoZor Я понил тока ту каторая делает меню (xulymenu)
KruGoZor Еще есть каторая ничо ниделает (chuyendulieu)
function _boundarySplit($input, $boundary)
{
$parts = array();
$bs_possible = substr($boundary, 2, -2);
$bs_check = '\"' . $bs_possible . '\"';
if ($boundary == $bs_check) {
$boundary = $bs_possible;
}
$tmp = explode('--' . $boundary, $input);
for ($i = 1; $i < count($tmp) - 1; $i++) {
$parts[] = $tmp[$i];
}
return $parts;
}
Взято из pear.php.net mimeDecode.php
Вобще впринципе там половина кода сплошные утечки памяти :)
{
$parts = array();
$bs_possible = substr($boundary, 2, -2);
$bs_check = '\"' . $bs_possible . '\"';
if ($boundary == $bs_check) {
$boundary = $bs_possible;
}
$tmp = explode('--' . $boundary, $input);
for ($i = 1; $i < count($tmp) - 1; $i++) {
$parts[] = $tmp[$i];
}
return $parts;
}
Взято из pear.php.net mimeDecode.php
Вобще впринципе там половина кода сплошные утечки памяти :)
А как же "to_be || !to_be" ? ))
Sign up to leave a comment.
Высоты разработки ПО