對不起,我用C++很綠,可能是這種事情嗎?我有一個超類,有一個巨大的構造函數,所以我做了一個靜態工廠類型的構造函數,將做一些工作,然後返回新的ParametricShape(等等等等等等等等等等等等等等等等)。重用子類中的工廠類型構造函數
class ParametricShape: public ModelView{
public:
//actually has 15 arguments didn't want to type them all up
ParametricShape(func x, funcy, funcz, float lu, float hu, float lv, float hv, int sv, int su);
static ParametricShape* makeDonutShape(float);
}
後來我想在擴展類中使用這個靜態方法。
class Donut : public ParametricShape{
Donut();
}
Donut::Donut(){
this = ParametricShape::makeDonut(1.0f);
}
這是諸如此類的事情,我試圖做的,我一直在摸索周圍有各種拷貝構造函數,什麼不可以,並獲得了各種不同的錯誤。目前它只是說:將左值作爲賦值的左操作數。謝謝你的幫助!
*爲什麼*你想要那個?這是沒有意義的...?! –
你不能修改'this'指針。相反,重寫「make ...」方法:它們不應該返回新實例,而是修改現有實例。此外,我認爲你不想重寫你的情況下的形狀類,因爲你不引入任何新的成員,但只提供參數化函數的創建例程 – leemes
@KerrekSB,因爲我想擴展參數化形狀,使其看起來像一個甜甜圈並重寫渲染等一些其他的東西我相當有限,我可以做什麼,因爲我給了一個模型視圖類與prive /受保護的東西,我不允許改變。 – schwiz