SORU
11 Mayıs 2012, Cuma


C dize döndürmek için en iyi yolu nedir ?

Basit sorum şu: bazı sınıf Adam var ve adamın adını veren üye işlev tanımlamak istersem, aşağıdaki iki değişik tercih eder?

İlk:

string name();

İkinci:

void name(/* OUT */ string &name);

İlk varyant gereksiz kopyalarını yapar çünkü biraz verimsiz (yerel değişken ->değer - ^ dönün . atama sol kısmında değişken).

İkinci varyant oldukça verimli görünüyor ama yazmak beni ağlatıyor

string name;
john.name(name);

basit yerine

string name(john.name());

Varyant ve uygun anlaşma verimlilik ve kolaylık arasındaki okunabilirlik nedir ne tercih eder?

Şimdiden teşekkürler.

CEVAP
11 Mayıs 2012, Cuma


Güzel bir soru ve kodunuzu dikkat olduğunuzu gösterir soruyorsun aslında. Ancak iyi haber, bu durumda, kolay bir çıkış yolu yok.

İlk olarak, temiz yöntemi bu işin doğru yolu budur. The compiler will eliminate unnecessary copies (web-archive copy of article), çoğu durumda (mantıklı genellikle).

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • AginoEvolutionHD

    AginoEvoluti

    27 AĞUSTOS 2011
  • Google Developers

    Google Devel

    23 AĞUSTOS 2007
  • LiveForGodsKingdom

    LiveForGodsK

    6 NİSAN 2008