Y at-il un effet secondaire à faire:Est-il possible de sous-classer une structure C en C++ et d'utiliser des pointeurs vers la structure en code C?
Code C:
struct foo {
int k;
};
int ret_foo(const struct foo* f){
return f.k;
}
C++ Code:
class bar : public foo {
int my_bar() {
return ret_foo((foo)this);
}
};
Il y a un extern "C"
autour du code C++ et chaque code est à l'intérieur de sa propre compilation unité.
Est-ce portable sur les compilateurs?
Je suppose que vous voulez dire (foo *) ceci, ou même mieux: static_cast (this) –
Je suis curieux de savoir l'effet d'un extern "C" autour d'une classe avec une méthode ... raison pour laquelle vous voulez faire cela nous aiderait à offrir des informations ou des solutions alternatives. – paercebal
Quand vous dites "portable sur les compilateurs", voulez-vous dire compiler le code C avec un compilateur, et le C++ avec un autre, et relier les deux ensemble? – Roddy