Если obj1 + obj2 возвращает объект, имеющий элемент функции show(), тогда да, это возможно.
Если нет, это не так.
Таким образом, это зависит от используемой здесь функции operator +, которая зависит от обоих типов obj1 и obj2.
obj1 + obj2 - это выражение, которое имеет тип, тип объекта, возвращаемого операцией, как любое выражение. Теперь, когда выражение выполняется, у вас есть этот объект. Но поскольку здесь вы не связываете его с именем (например, с помощью присвоения), оно является «временным», то есть оно будет уничтожено в конце полного выражения.
Итак, если результирующий тип временного объекта предоставляет функцию show(), вы можете называть его так же, как и вы.
Если он не предоставляет функцию show(), вы пытаетесь вызвать функцию, которая не существует.
Так что в любом случае компилятор остановит вас, это не будет ошибкой во время выполнения.
Я был бы вами, я бы установил минимальный тестовый проект, чтобы играть с этими принципами.
Какое поведение можно было бы ожидать от код? – sharptooth
Вы спрашиваете, можете ли вы вызвать функцию-член в результате предыдущей операции (возможно, не понимая, что 'op +' есть вызов функции)? –
Я просто хочу показать общее значение (т.е. obj1.x + obj2.x), используя метод show, не изменяя значение экземпляра с использованием вышеописанного метода ... – Abhineet