簡體   English   中英

在構造C ++ 03時需要許多參數

[英]need many parameters on construction c++03

我有一個看起來有點像的物體

class Block{
     Type1 member1;
     Type2 member2;
     Type3 member3;
     ...
     //many many MANY members (hundreds, if not thousands)
}

我需要創建一種方便的方式來構造Block。

這需要構建器模式,但是如此處所示https://en.wikipedia.org/wiki/Builder_pattern似乎我將超過構造器上允許的最大參數數量。

我應該怎么做? 我寧願避免使用較小的塊。

謝謝

這里應該有設計問題,我認為您並沒有真正使用過數百名成員。 類應該設計得越簡單越好。 您應該提供此類的更多詳細信息。

我不認為您正在苦惱建造者模式。 定義一個配置對象。 定義單個方法來設置配置對象。 然后使用配置對象實例化對象。

class BlockCfg {
    //...
    void setMember1 (Type1 val);
    void setMember2 (Type2 val);
    //...
};

class Block {
    Block (const BlockCfg &cfg);
};

您可以使BlockBuilder成為Blockfriend ,然后讓BlockBuilder函數直接修改成員數據,而不是將所有數據傳遞給構造函數。 缺點是Block所有成員都是默認構造的,如果大多數類型都是內置的,這可能很好,但可能會很昂貴。

但是,在一個類中有數百名成員是一種巨大的代碼味道,您應該考慮重新設計。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM