Czy jest możliwe podklasowanie struktury C w C ++ i używanie wskaźników do struktury w kodzie C?

Czy istnieje taki efekt uboczny:

Kod C:

struct foo {
      int k;
};

int ret_foo(const struct foo* f){ 
    return f.k; 
}

Kod C ++:

class bar : public foo {

   int my_bar() { 
       return ret_foo( (foo)this ); 
   }

};

Jestextern "C" wokół kodu C ++ i każdy kod znajduje się we własnej jednostce kompilacji.

Czy jest to przenośne w kompilatorach?

questionAnswers(10)

yourAnswerToTheQuestion