2017-06-03 27 views
5

Aynı .cpp dosyasına birden çok ad alanı eklemek istiyorum.Aynı C++ kaynak dosyasında birden çok ad alanı kullanmak iyi bir uygulamadır mı?

std yaygın olarak kullanıldığında, z3 ad alanı, 25 KLOC dosyasının yaklaşık% 10'unda kullanılacaktır.

o

using namespace std; 
    using namespace z3; 

Sadece std kullanarak düşünüyorum hem kullanmak ve daha sonra gerektiğinde namespase bahsederek Z3 yöntemleri kullanmak iyi bir uygulama olacaktır.

using namespace std; 

    z3::context c; 
    z3::solver s; 

Bunlardan hangisi daha iyi bir uygulamadır?

Tek bir ad alanına onları yeniden adlandırmak istemiyorum.

Teşekkür ve Saygılarımızla, Sukanya

+0

Eğer öyleyse neden bunu ibaret olan ad r3' kullanarak 'yazarsanız? –

+8

Bir şekilde bir 25K loc (!) Dosyasını daha küçük olanlara bölebilirseniz görmeye başlarım. – Mureinik

+0

@Mureinik, Evet, bunu yapmalıyım. Buraya gelme. Teşekkürler. –

cevap

8

Aslında bu sizin ad kirletiyor çünkü programa tüm ad alanı almak için değil en iyi uygulamadır. Bu, çarpışmaların çarpmasına ve şişirilmiş programlara yol açabilir. Sadece kullandığınız şeyi almak en iyisidir.

Bunu yerine:

using namespace z3; 

yerine yapmalıdır:

using z3::context; 
+2

'std' – user4581301

+0

içeriğiyle Ditto Teşekkür ederiz. Bu karar vermeme yardımcı oldu. Tekrar teşekkürler. –

+1

Sadece çarpışmaların isimlendirilmesi değil. Daha tehlikeli olan, kod davranışlarının sessizce değişebilmesidir, örneğin her iki isim de aynı isimde fakat biraz farklı parametreler içeren fonksiyonlar içeriyorsa (aşırı yükleme). Bkz. [Bu basit örnek] (http://coliru.stacked-crooked.com/a/578f9934725ffd90). – zett42