2016-04-12 63 views
0

Sınıfımın bir parçasını (örneğin bir şeyi ayrıştırmak gibi) özel bir şeyler yapıyorum. Ad alanı/sınıf yöntemlerini ayıklamak istiyorum. Görüyorum ki bu yöntemler herhangi bir durum içermiyor, bu yüzden üç seçeneğim var. (Bazı mantıksal ad)Functons, statik yöntemler veya normal yöntemler

  • fonksiyonları
  • statik yöntemler
  • normal yollar

iyi çözüm nedir: Ben bunları yazabilirim?

+0

Ödevinizdeki en iyi not ne olursa olsun, koşullara göre en iyi çözüm, tanım olarak olacaktır. – WhozCraig

+0

Bu, bağlıdır, ancak çoğunlukla bu bir kodlama stili meselesidir. – jotik

+3

Scott Meyers, bir fonksiyonun ne olması gerektiğine ve bir metot olması gerektiğine nasıl karar verdiğini gösteren "akış şemasını" gösteren ilginç bir makaleye sahipti. http://www.drdobbs.com/cpp/how-non-member-functions-improve-encapsu/184401197 – Joe

cevap

1

Bu hemen hemen çağlayan mantık herkesin önerir edilir: En işlevi ayrı ad, classınıza sonra serbest fonksiyonu bağlı değildir genel bir algoritmadır

  1. edin. (Basitçe, işleçleri veya begin()/end() gibi diğer ücretsiz işlevleri çağırabilir)
  2. Sadece ortak arabirimine bağlıysa, aynı ad alanında serbest işlev varsa.
  3. Özel üyelere bağlıysa, ancak duruma bağlı değilse, statik yöntem.
  4. Aksi takdirde, başka bir seçeneğiniz yoktur;

Bunun ruhu, kodunuzu sınıftan mümkün olduğunca ayrıştırılmış olarak yapmaktır.