Являются ли эти же:Разница между указателем и ссылочным параметром?
int foo(bar* p) {
return p->someInt();
}
и
int foo(bar& r) {
return r.someInt();
}
Игнорировать нулевой потенциал указатель. Являются ли эти две функции функционально идентичными независимо от того, является ли someInt()
виртуальным или если они переданы bar
или подкласс bar
?
ли этот ломтик ничего:
bar& ref = *ptr_to_bar;
Вы на самом деле можете присвоить NULL к ссылке, если вы приводите его к указателю типа, а затем разыменования точки например int & ref = * (int *) NULL; , и вы также можете переназначить ссылку, если вы поместите ее в союз и измените соответствующее значение в объединении. –
И я должен добавить, что это никогда не должно быть сделано, потому что когда функция запрашивает ссылку, она никогда не ожидает NULL, и хотя большинство ссылок в основном реализованы так же, как указатели, это НЕ МОЖЕТ быть в случае всех сценариев/платформы. –
, если вы назначаете соответствующее значение объединения, то вы действительно не назначаете ссылку? – shoosh