You can use the :r (root) filename modifier which removes the last extension (check out :h filename-modifiers for more information)
:e %:r.cpp
where
%is shorthand for current filename.:rremoves the extension.cppsimply appends that string at the end.
This effectively substitutes the current file’s extension with another, then open the file with the newer extension.
An even shorter way (courtesy of Peter Rincker),
:e %<.cpp
Relevant documentation at :h extension-removal