27 Temmuz 2009 Pazartesi

Her programcıda olması gerekenler...

Programlama ile uğraşan herkesin taşıması gereken özelliklerden bazıları:

1. Verilen büyük bir programda en önemli sınıfların hangileri olduğunu, bunların ne iş yaptıklarını birbirleriyle ne gibi bir iletişim içinde olduklarını anlamak.
2. Kodu değiştirmeyi, yeni özellikler eklemeyi zorlaştıran kod tekrarlarını ve dizayn hatalarını keşfetmek, bunların nasıl düzeltilebileceği ile ilgili bir yapılacaklar listesi çıkartabilmek, ve bu listeyi uygulayabilmek.
3. Bir programa eklenecek yeni özellikler verildiğinde, programın hangi parçalarının bu yeni özellikleri eklemeyi mümkün kılmadığını bulup, bu parçalar üzerinde değişiklik yapmak. Ortaya çıkan yeni dizayn üzerine istenilen özellikleri ekleyebilmek.
4. Programa eklenmesi istenen özellikleri, test güdümlü geliştirme metoduyla koda dökmek ve testleri Michael Feathers’ test tanımına uygun bir şekilde yazmak.
5. Programa eklenmesi istenen özellikleri programa entegre ederken, ufak adımlar halinde hem programın dizaynını değiştirip hem de yeni özelliğide aynı anda ekleyebiliyor olmak. Bunları günlerce sürecek dizayn çalışması yaparak değil, günlük ufak adımlar halinde yapabiliyor olmak.

19 Temmuz 2009 Pazar

new char(10) ve new char[10] arasındaki fark

char *ptr = new char(52); => ile 1 byte lık yer alıp "char" sınıfından bir nesne oluşturarak, bu nesenenye ilk değer olarak (contructur ını çağırarak) decimal olarak yazılmış ascii characterlerden değeri "52" olan 4 sayısını karakter olarak ptr işaretçisinin gösterdiği yere yazmış oluruz...

char *str = new char [52]; => ile 52 karakter boyutunda yer ayırırır ve bu aralığın ilk adresini str işaretçisi ile geri döndürür. Ayrılan alanların her birisi için char sınıfının constructor ını çağırır ve değerini boş olarak atar ...

denemek isterseniz:::

#include
using namespace std;
int main()
{
char *ptr =new char('c'); //value= "c"
char *ctr =new char(52); //value = 4
char *str =new char[52];

cout<<*ptr<<"\n";
cout<<*ctr<<"\n";

for(int i=0;i<52;i++)
cout<<*str<<"\n";

return 0;
}

Apture