Рубрики

Вывод программы C ++ | Набор 12

Предсказать вывод следующих программ на C ++.

Вопрос 1

#include <iostream>

using namespace std;

  

int fun(int a, int b  = 1, int c =2)

{

    return (a + b + c);

}

  

int main()

{

    cout << fun(12, ,2);

    return 0;

}

Вывод: ошибка компилятора при вызове функции (12,, 2)
С аргументами по умолчанию мы не можем пропустить аргумент в середине. Как только аргумент пропущен, все следующие аргументы должны быть пропущены. Звонки fun (12) и fun (12, 2) действительны.

вопрос 2

#include<iostream>

using namespace std;

  
/ * локальная переменная совпадает с именем члена * /

class Test

{

private:

    int x;

public:

    void setX (int x) { Test::x = x; }

    void print() { cout << "x = " << x << endl; }

};

  

int main()

{

    Test obj;

    int x = 40;

    obj.setX(x);

    obj.print();

    return 0;

}

Выход:

x = 40

Оператор разрешения области действия всегда можно использовать для доступа к члену класса, когда он скрыт локальными переменными. Таким образом, строка «Test :: x = x» такая же, как «this-> x = x»

Вопрос 3

#include<iostream>

using namespace std;

  

class Test 

{

private:

    int x;

    static int count;

public:

    Test(int i = 0) : x(i) {}

    Test(const Test& rhs) : x(rhs.x) { ++count;  }

    static int getCount() { return count; }

};

  

int Test::count = 0;

  
Test fun() 
{

    return Test();

}

  

int main()

{

    Test a = fun();

    cout<< Test::getCount();

    return 0;

}

Вывод: зависит от компилятора
Строка «Test a = fun ()» может вызывать или не вызывать конструктор копирования. Таким образом , выход может быть 0 или 1. Если копия элизия происходит в компиляторе, конструктор копирования не будет вызван. Если удаление не произойдет, будет вызван конструктор копирования. Компилятор gcc выдает результат как 0.

Пожалуйста, пишите комментарии, если вы найдете какие-либо неправильные ответы / объяснения, или вы хотите поделиться дополнительной информацией по темам, обсужденным выше.

Рекомендуемые посты:

Вывод программы C ++ | Набор 12

0.00 (0%) 0 votes