Рубрики

Вывод программы C ++ | Комплект 19

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

Вопрос 1

#include <iostream>
#include <string.h>

using namespace std;

  

int main()

{

    cout << sizeof("GeeksforGeeks") << endl;

    cout << strlen("GeeksforGeeks");

    return 0;

}

Выход:

14
13

Оператор sizeof возвращает размер строки, включая нулевой символ, поэтому вывод равен 14. В то время как функция strlen () возвращает точную длину строки, исключая нулевой символ, поэтому вывод равен 13.

Вопрос 2:

#include <iostream>

using std::cout;

class Test

{

public:

    Test();

    ~Test();

};
Test::Test()
{

    cout << "Constructor is executed\n";

}
Test::~Test()
{

    cout << "Destructor is executed\n";

}

int main()

{

    delete new Test();

    return 0;

}

Выход:

Constructor is executed
Destructor is executed

Первое утверждение внутри функции main () выглядит странно, но оно совершенно правильно. Можно создать объект, не указывая его дескриптор на любой указатель в C ++. Этот оператор создаст объект класса Test без какого-либо указателя на него. Это также можно сделать на таких языках, как Java и C #.
Например, рассмотрим следующее утверждение:

new  student();  // valid both in Java & C#

Вышеупомянутое утверждение создаст объект ученического класса без какой-либо ссылки, указывающей на него.

Вопрос 3:

#include <iostream>

using std::cout;

class main 

{

public:

    main()  {cout << "ctor is called\n";}

    ~main() {cout << "dtor is called\n";}

};

int main() 

{

    main m;    // ЛИНИЯ 11

}

Выход:

Compiler error:
11 8 [Error] expected ';' before 'm' 

Вышеприведенная программа выглядит синтаксически правильной, но не скомпилируется. Название класса причины. Имя класса является основным, поэтому необходимо сообщить компилятору, что main — это имя класса. Как правило, ключевое слово struct или class не требуется для создания объекта класса или структуры. Но когда имя класса является основным, возникает необходимость написать структуру или класс при создании объекта класса или структуры. Помните, главное не зарезервированное слово.

Ниже приведена правильная версия вышеуказанной программы:

#include <iostream>

using std::cout;

class main

{

public:

   main()  { cout << "ctor is called\n";}

   ~main() { cout << "dtor is called\n";}

};

int main()

{

   class main m;

}

Теперь прогнозируем вывод следующей программы:

#include <iostream>

using std::cout;

class main 

{

public:

   main()  { cout << "ctor is called\n"; }

   ~main() { cout << "dtor is called\n"; }

};

main m;    // Глобальный объект

int main()

{             
}

Вышеуказанная программа компилируется и работает нормально, потому что объект является глобальным. Конструктор глобального объекта выполняется перед функцией main (), а деструктор — после завершения main ().

Вывод: когда имя класса / структуры является основным и всякий раз, когда создается локальный объект, при создании объекта класса / и структуры обязательно писать класс или структуру. Потому что выполнение программы на C ++ начинается с функции main (). Но это правило не распространяется на глобальные объекты. Опять же, main — это не ключевое слово, а обрабатывайте его так, как если бы оно было.

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

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

Вывод программы C ++ | Комплект 19

0.00 (0%) 0 votes