На С++ тоже можно писать Example a = new Example(), а можно как вы написали, но если вы не понимаете разницу в этих выражениях, то вам следует дальше книги читать. Если вы напишете Example a(1), то переменная будет уничтожена при выходе из области видимости, а при Example a = new Example(1), будет лишь уничтожена переменная-ссылка на объект, сам же объект останется в памяти, при этом ссылку на объект можно вернуть из функции, например если вы пишете функцию-фабрику. Однако если вы все таки в функции напишите Example a(1), и вернете ссылку из функции, то объект все равно будет уничтожен, а вы получите ссылку на несуществующий объект. В С++ есть несколько классов "умных указателей", которые работают аналогично указателям C#.
Плюс разница между структурами и классами с C# и C++ колоссальна. В C++ труктура это класс у которого все члены по умолчанию имеют уровень доступа по умолчанию public, вместо private в классах, то в C# это синтаксически, семантически разные вещи с различным поведением.