因此,我一直在使用球拍網站上的教程(http://docs.racket-lang.org/inside/overview.html)爲一些C++類編寫一些球拍擴展,並且已經能夠成功地將它們加載到球拍中。然而,我想知道如果我可以使用繼承重用一些代碼。球拍/方案C++擴展和繼承
例如我有兩個我用C++,Foo和Bar編寫的類。
類Foo看起來是這樣的:
Foo {
func1() { /* ... do stuff */ }
}
類酒吧看起來是這樣的:
Bar : Foo {
func2() { /*... do more stuff /*}
}
我目前寫了創建酒吧,併爲雙方的擴展單一的.cpp球拍擴展func1()和func2();不過,我想創建兩個球拍擴展類。一個只在Foo內部運行的擴展,然後我只想在Bar_ext.h中包含Foo_ext.h(我的球拍擴展到Foo),這樣我就可以訪問所有的功能。
所以我現在有這樣的:
Bar_ext.cpp:
func1_racket_ext() { /*... do racket stuff and run func1() */}
func2_racket_ext() {/* ... do more racket stuff and run func2() /*}
/* Scheme initializes etc... */
但我真正想要的是:
Foo_ext.h:
func1_racket_ext() { /*... do racket stuff and run func1() */}
/* Scheme initializes etc... */
Bar_ext.cpp :
#include "Foo_ext.h"
func2_racket_ext() {/* ... do more racket stuff and run func2() /*}
/* Scheme initializes etc... */
這甚至可能嗎?我覺得命名空間可能是一個問題。這對我來說非常有用,因爲它允許我不寫很多冗餘的代碼,因爲我有很多使用Foo類作爲超類的類。
任何意見,將不勝感激,如果你能指出我的一個例子(也許有東西在底層的球拍代碼,你可以指向我?)