Рубрики

C ++ | Статическое ключевое слово | Вопрос 6

Вывод следующей программы на C ++?

#include <iostream>

class Test

{

public:

    void fun();

};

static void Test::fun()   

{

    std::cout<<"fun() is static\n";

}

int main()

{

    Test::fun();   

    return 0;

}

Предоставлено Pravasi Meet
(A) fun () является статичным
(B) Пустой экран
(C) Ошибка компилятора

Ответ: (с)
Объяснение: Приведенная выше программа завершается неудачно при компиляции и показывает ниже сообщения об ошибках.
[Ошибка] не может объявить функцию-член 'void Test :: fun ()' для статической связи [-fpermissive]
В функции 'int main ()':
[Ошибка] не может вызвать функцию-член void Test :: fun () без объекта

Если статическая функция должна быть определена вне класса, тогда ключевое слово static должно присутствовать в объявлении функции, а не в определении вне класса.

Следующая программа теперь верна.

#include <iostream>

class Test

{

public:

    static void fun();

};

void Test::fun()

{

    std::cout<<"fun() is static\n";

}

int main()

{

    Test::fun();

    return 0;

}

Тест на этот вопрос

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

C ++ | Статическое ключевое слово | Вопрос 6

0.00 (0%) 0 votes