Dans C++ cela fonctionne avec des pointeurspointeur vs référence en C++
#include <iostream>
using namespace std;
struct Base {
virtual void base_method() {
cout << "this is the base\n";
}
};
struct Derived : public Base {
void base_method() {
cout << "this is the child\n";
}
};
void test(Base & b) {
b.base_method();
}
void test2(Base * b) {
b->base_method();
}
int main() {
Derived * d;
Derived & d1();
test2(d); //this works
test(d1); //this doesn't
return 0;
}
Pourquoi est-ce que vous ne pouvez pas faire la même chose avec une référence comme Child & c()
passé dans la fonction de test. Je demande cela puisque les pointeurs et les références ont tendance à se comporter de manière similaire
Quelle est "la même chose" ? –
@ H2CO3 Si vous passez la référence à la fonction de test, il ne compilera pas – aaronman
@aaronman Euh, * pourquoi * pensez-vous qu'il compilera? Les références ne sont pas des pointeurs ... –