CPP_GEEK Telegram 211
Что не так в этом отрывке кода на С++?

operator int() const {
return *this;
}

Выше приведен полный код для проверки.

Ответ:
Он скомпилируется, хотя некоторые компиляторы могут кинуть warning, сразу же объясняющий в чём суть ошибки. Но вот при запуске вы словите stack overflow. Дело в том, что operator int будет пытаться привести возвращаемое значение к типу int, что вполне можно сделать, ведь для текущего объекта у нас есть замечательный operator int, который это и делает. Т.е. функцию вызовет сама себя и будет продолжать это делать рекурсивно, пока не переполнится стек.

➡️ @cpp_geek
👍122



tgoop.com/cpp_geek/211
Create:
Last Update:

Что не так в этом отрывке кода на С++?

operator int() const {
return *this;
}

Выше приведен полный код для проверки.

Ответ:
Он скомпилируется, хотя некоторые компиляторы могут кинуть warning, сразу же объясняющий в чём суть ошибки. Но вот при запуске вы словите stack overflow. Дело в том, что operator int будет пытаться привести возвращаемое значение к типу int, что вполне можно сделать, ведь для текущего объекта у нас есть замечательный operator int, который это и делает. Т.е. функцию вызовет сама себя и будет продолжать это делать рекурсивно, пока не переполнится стек.

➡️ @cpp_geek

BY C++ geek




Share with your friend now:
tgoop.com/cpp_geek/211

View MORE
Open in Telegram


Telegram News

Date: |

bank east asia october 20 kowloon best-secure-messaging-apps-shutterstock-1892950018.jpg Public channels are public to the internet, regardless of whether or not they are subscribed. A public channel is displayed in search results and has a short address (link). The Standard Channel Earlier, crypto enthusiasts had created a self-described “meme app” dubbed “gm” app wherein users would greet each other with “gm” or “good morning” messages. However, in September 2021, the gm app was down after a hacker reportedly gained access to the user data.
from us


Telegram C++ geek
FROM American