Help!

Тема в разделе "Общие вопросы по С и С++", создана пользователем din-gior, 27 дек 2006.

  1. din-gior

    din-gior Гость

    Помогите пожалуйста решить задачки
    45. int F() { struct X { int s, p; }; X a = {1, 2}; X b = {3, 4}; return a.s + b.p; }
    46. bool F() { struct X { int s, p; }; X a = {1, 2}; X b = {3, 4}; return a.s > b.p; }
    47. int F() { class A { public: int x; int Out() { return x / 2;} }; A a; a.x = 1; return a.Out(); }
    48. int F() { class A { public: int y; A(int x) { y = 2; } }; A z(0); return z.y; }
    49. bool F() { class A { int x; public: A(int y) { x = y + 1; } }; int k = 5; A z(k); return k; }
    50. bool F() { class A { public: int y; A(int x = 0) { y = x; } }; A z(8); return z.y == 0; }
     
  2. European

    Регистрация:
    4 сен 2006
    Сообщения:
    2.580
    Симпатии:
    0
    Ты хоть сам понимаешь что надо сделать?
     
  3. Creo

    Creo Гость

    Вообще-то насколько я понял нужно ответить, что вернет ф-ция.
    45.
    Код (Text):
    int F()
    {
    struct X
    {
    int s, p;
    };
    X a = {1, 2};
    X b = {3, 4};
    return a.s + b.p;
    }
    В функции локально определена структура и инициализированна значениями 1, 2 и 3, 4 соответственно. Вернет значение 5 т.е 1+4. По анологии 46 вернёт логическое значение false т.к 1>4 ложное утверждение. А вообще берем учебник и читаем следующие темы инициализация переменных, конструкторы, классы и структуры ;) Успехов... :)
     
  4. Creo

    Creo Гость

    47 Задача немного интересней. Там создается класс с int переменной и int-возвращающей ф-цией, то есть глобальная функция вернет не 0,5 а 0.
    48 Тоже еще то дурилово. Создан класс с конструктором. Конечно его инициализируют 0 но этот ноль нигде не участвует Y(переменной-члену) присвоят значение 2. Следовательно ф-ция вернет 2.
    Следующие два вопроса отвечу завтра. Сегодня лень уже. А вообще надо читать книги, хоть немного. Веть ты, может быть, программист в будующем... Кул хацкер.. ;)
     
  5. Creo

    Creo Гость

    Как-то безграмотно ответил :( Вы уж простите. Конструктор не инициализируют нулем(вообще фраза дибильная... ;) ). Но в остальном фсе правильно. Вроде...
     
  6. Creo

    Creo Гость

    Вот как и обещал последние две задачки. В первой задаче всю мутятину с классом вообще можно пропустить т.к. все равно возвращают значение локальной переменной k, которая с классом никак не связана. Т.е. return 5. Так как возвращаймое значение должно быть логического типа, то компилятор преобразует 5 в true (в Си и Си++ любое ненулевое значение эвивалентно true, нулевое -- false).
    Во второй задаче возвращается значение логического выражения z.y ==0; если z.y равно нулю, то true иначе сам догодайся ;) . Теперь осталось определить, чему равно z.y. Оно равно восьми. Почему?
    Читай тему конструкторы и параметры передаваемые в ф-цию по умолчанию. ВСЁ :(
     
  7. din-gior

    din-gior Гость

    Пасибо большое всем, я не программист совсем в будущем, а электротехник, а книжки читать просто некогда было 200 задач таких вот
     
Загрузка...

Поделиться этой страницей