Заранее извиняюсь за этот вопрос. Прошло некоторое время с тех пор, как я использовал C ++, и я не могу найти точное руководство, которое отвечает на мой вопрос. Я думаю это пример неявного преобразования, но я не уверен.
Код:
class Square
{
public:
Square(int size) : size{size}
{
}
int getSize() const
{
return size;
}
private:
int size;
};
void doSomething(Square square)
{
cout << "doSomething called with " << square.getSize() << endl;
}
int main()
{
// Should be passing in a Square type here, but instead passing an int.
doSomething(23);
return 0;
}
Выход:
doSomething called with 23
Вопросы:
- Это пример неявного преобразования?
- Как это происходит? Я был бы удовлетворен ссылкой, которая объясняет это более подробно. Что бы это ни стоило, я уже рассмотрел объяснение cplusplus.com преобразований типов .
Спасибо!