Потому что Страуструп хотел, чтобы классы были похожи на примитивные типы. Когда вы инициализируете переменную int
:
int x = 5;
int y = x; // Why would you write int y = &x; ?
Передача константного указателя на константный объект не согласуется с тем, что C ++ принес в C. классы в C ++ являются просто пользовательскими типами, если они не работают как примитивные типы, то чем они являются?
Другим примером, где программирование на C ++ было бы несчастным без ссылок, является перегрузка операторов. Представьте, что вы должны написать:
myclass myobj1, myobj2, myobj3;
&myobj3 = &myobj1 + &myobj2;