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.
:r
removes the extension
.cpp
simply 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
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…