2016-03-23 21 views
0

Kodun eksiksiz olarak okunması ve "Aktarım parametresinin aktarılması" ile ilgili bir sorunuz vardı. Yazar, birkaç rutin arasında bir parametre aktarıyorsanız, bu rutinleri, parametreyi sınıf verileri olarak paylaşan bir sınıfa dahil etme gereksinimi olduğunu belirtebilir.Aktarım Parametresi Geçiyor

Bu, aynı verileri kullanan birkaç ayrı sınıfa sahip olsam, bu verileri kullanan yeni bir sınıf oluşturmam ve sonra yeni sınıflar oluşturmak için miras almam gerektiği anlamına mı geliyor?

Ya

bu benim programda gevşek rutinleri bir grup var eğer vb

size

ederiz, devam edin ve bir sınıf içine koydu ve kapsülleme avantajlar elde gerektiği anlamına mı İkincisi,
+0

Herkesin elinden alması gerekmediği için, soruya tam bir alıntı yapabilmeniz iyi olur. – user463035818

+0

Size atıfta bulunduğunuz metinde bir "olabilir" söz konusu olabilir ve bu, özellikle kodunuzun yeniden yapılandırılmasından faydalanıp yararlanamayacağını belirlemek için kendi iyi kararınızı kullanmanız dışında, özellikle bir şey yapmanız gerektiği anlamına gelmez. Bu fikri uygulamak * belki de * başladığınızdan daha kötü bir karışıklığa neden olur. – molbdnilo

cevap

0

. şeklinde değiştirilebilir

void function_1(std::string& my_data); 
void function_2(std::string& my_data); 

void main() { 
    std::string my_data = "SomeString"; 
    function_1(my_data); 
    function_2(my_data); 
} 

: function_1 ve function_2my_data alanı kullanabilirsiniz Nerede yerine sahip,

class MyClass { 
    std::string my_data; 
pulbic: 
    MyClass(const std::string& str) : my_data(str) {} 
    void function_1(); 
    void function_2(); 
} 

void main() { 
    MyClass obj("SomeString"); 
    obj.function_1(); 
    obj.function_2(); 
} 

dize geçirilecek onlar böyle bir durumda söz ediyoruz gibi görünüyor her zaman.

+0

Bu nedenle, bir parça veriyi sınıflar arasında geçmek yerine, özel ve sınıf içinde tutmakla ilgilidir. Kod örneği için size teşekkür ederiz. – Athomas1

+0

Eh, bu basit bir örnek oldu, bu yüzden okunabilirlik iyileştirme o kadar büyük değil. Ancak, her bir işleve geçmek zorunda olduğumuz 20 değişkene sahip olursak, bunları bir kurucuya sadece bir kez iletmek çok daha temizdir. Gittikleri ana nokta bu. Kapsülleme, diğer nedenlerden dolayı güzeldir. –