ݺߣ

ݺߣShare a Scribd company logo
KBUZEM
Karabük Üniversitesi
Uzaktan Eğitim Araştırma ve Uygulama Merkezi
13. Sınıfları başlık dosyaları içinde tanımlayıp kullanmak
Örnek1: Aşağıda verilen A isimli sınıfı A.h olarak kaydedip ana program içinden
#include "A.h" tanımlaması yapılarak çağrılabilir. Verilen programlar Dev C++ ile
derlenmiştir.
//------------------- A.h -------------------------------------
#include<iostream>
using namespace std;
13.
HAF
TA
NESNEYE DAYALI
PROGRAMLAMA
BLM301
Mikroişlemciler
2
Karabük Üniversitesi Uzaktan EğitimAraştırma ve Uygulama Merkezi
Mühendislik Fakültesi No:215 Balıklarkayası Mevkii 78050 Karabük TÜRKİYE
class A
{
public:
int i;
void yaz()
{ y=5.2; z=78;
cout<<"y= "<<y<<" i= "<<i<<" z= "<<z<<endl;
}
private:
float y;
int z;
};
// ---------------- Ana program ----------------
#include<iostream>
#include "A.h"
using namespace std;
int main()
{
A n1;
n1.i=5;
n1.yaz();
cin.get();
return 0;
}
Örnek 2: Aşağıda verilen programda Anaprogram derlendiğinde
redefinition of `class A' ve previous definition of `class A' hatası ile karşılaşmaktayız. Türkçe
anlamı A sınıfının ana programda iki defa tanımlandığını ifade etmektedir. Çünki B.h
dosyasına A.h dosyası dahil edilmiş. Daha sonda Ana programda
#include "A.h"
#include "B.h"
Satırları ile A.h dosyası iki defa eklenmiş olmaktadır. Bu şekilde tekrar tanımlar nasıl
önlenebilir.. Örnek 3 de bunun çözümü verilmiştir.
//----------- A.h-----------------
class A
{ float y;
int z;
public:
int i;
};
//---------------- B.h -------------
#include "A.h"
class B
{
public:
double x;
};
BLM301
Mikroişlemciler
3
Karabük Üniversitesi Uzaktan EğitimAraştırma ve Uygulama Merkezi
Mühendislik Fakültesi No:215 Balıklarkayası Mevkii 78050 Karabük TÜRKİYE
//----------------- Ana program------------------
#include<iostream>
#include "A.h"
#include "B.h"
using namespace std;
int main()
{
A A1;
B B1;
A1.i=10;
B1.x=20;
cout<<A1.i<<endl;
cout<<B1.x<<endl;
cin.get();
return 0;
}
Örnek3:
//-------------- A.h-----------------------
#ifndef A_H //A.h dosyası tanımlanmadı ise
#define A_H //A.h dosyasını tanımla
class A
{ float y;
int z;
public:
int i;
};
#endif
//-------------- B.h--------------------
#ifndef B_H //B.h dosyası tanımlanmadı ise
#define B_H //B.h dosyasını tanımla
#include "A.h"
class B
{
public:
double x;
};
#endif
// ------------------- Ana program ---------------
#include<iostream>
#include "B.h"
#include "A.h"
using namespace std;
int main()
{ A A1;
B B1;
A1.i=10;
B1.x=20;
cout<<A1.i<<endl;
BLM301
Mikroişlemciler
4
Karabük Üniversitesi Uzaktan EğitimAraştırma ve Uygulama Merkezi
Mühendislik Fakültesi No:215 Balıklarkayası Mevkii 78050 Karabük TÜRKİYE
cout<<B1.x<<endl;
cin.get();
return 0;
}
// A.h
#include "B.h"
#ifndef A_H
#define A_H
class A
{
public:
int x,y,z;
int add(int a, int b, int c)
{
x=a; y=b; z=c;
return (x+y+z);
}
};
#endif // H_A
//B.h
#ifndef B_H
#define B_H
class B
{
public:
double d1,d2;
double add(double a,double
b)
{
d1=a; d2=b;
return (d1+d2);
}
};
#endif // H_B
//week14.cpp
#include <conio.h>
using namespace std;
#include <iostream>
#include "A.h"
#include "B.h"
int main () {
A a;
B b;
cout<<a.add(3,15,17)<<endl;
cout<<b.add(3.1,15.1)<<endl;
getch();
return 0;
}
BLM301
Mikroişlemciler
5
Karabük Üniversitesi Uzaktan EğitimAraştırma ve Uygulama Merkezi
Mühendislik Fakültesi No:215 Balıklarkayası Mevkii 78050 Karabük TÜRKİYE
Sınıflarda Static ifadesinin kullanımı.
#include <conio.h>
using namespace std;
#include <iostream>
int id=10;
int genId(){
static int id=0;
::id++;
return id;
}
int main () {
int id=25;
cout<<genId()<<endl;
cout<<genId()<<endl;
cout<<id<<endl;
cout<<::id<<endl;
getch();
return 0;
}
// static variable
#include <conio.h>
using namespace std;
#include <iostream>
int GenerateID()
{
static int ID = 0;
return ID++;
}
int main()
{
cout << GenerateID() << endl;
BLM301
Mikroişlemciler
6
Karabük Üniversitesi Uzaktan EğitimAraştırma ve Uygulama Merkezi
Mühendislik Fakültesi No:215 Balıklarkayası Mevkii 78050 Karabük TÜRKİYE
cout << GenerateID() << endl;
cout << GenerateID() << endl;
getch();
return 0;
}
#include <conio.h>
using namespace std;
#include <iostream>
class Something
{
private:
static int IDGenerator;
int ID;
public:
Something() { ID = IDGenerator++; }
int GetID() { return ID; }
int GetIDGenerator() { return
IDGenerator; }
};
int Something::IDGenerator = 0;
int main()
{
Something cFirst;
Something cSecond;
Something cThird;
cout << cFirst.GetID();
cout << cFirst.GetIDGenerator();
cout << cSecond.GetID();
cout << cSecond.GetIDGenerator();
cout << cThird.GetID();
cout << cThird.GetIDGenerator();
getch();
return 0;
}
BLM301
Mikroişlemciler
7
Karabük Üniversitesi Uzaktan EğitimAraştırma ve Uygulama Merkezi
Mühendislik Fakültesi No:215 Balıklarkayası Mevkii 78050 Karabük TÜRKİYE
Bir sınıf içinde bir değişken static ile tanımlanırsa, Bu değişkenbu sınıftan oluşturulan
bütün nesneler tarafıdan ortak kullanılır.
#include<iostream>
using namespace std;
class Bir
{
public:
static int sayi;
Bir()
{sayi ++;}
};
int Bir::sayi=0; //static değişkene ilk değer verme
int main()
{
Bir n1,n2,n3,n4,n5,n6;
cout<<"Nesnelerin sayisi: "<<n1.sayi<<endl;
n1.sayi=6;
n2.sayi=8;
n3.sayi=16;
n4.sayi=5;
n5.sayi=7;
n6.sayi=53;
cout<<"n1.sayi= "<<n1.sayi<<endl;
cout<<"n2.sayi= "<<n2.sayi<<endl;
cout<<"n3.sayi= "<<n3.sayi<<endl;
cout<<"n4.sayi= "<<n4.sayi<<endl;
cout<<"n5.sayi= "<<n5.sayi<<endl;
cout<<"n6.sayi= "<<n6.sayi<<endl;
cin.get();
return 0;
}

More Related Content

13. sınıfları başlık dosyaları

  • 1. KBUZEM Karabük Üniversitesi Uzaktan Eğitim Araştırma ve Uygulama Merkezi 13. Sınıfları başlık dosyaları içinde tanımlayıp kullanmak Örnek1: Aşağıda verilen A isimli sınıfı A.h olarak kaydedip ana program içinden #include "A.h" tanımlaması yapılarak çağrılabilir. Verilen programlar Dev C++ ile derlenmiştir. //------------------- A.h ------------------------------------- #include<iostream> using namespace std; 13. HAF TA NESNEYE DAYALI PROGRAMLAMA
  • 2. BLM301 Mikroişlemciler 2 Karabük Üniversitesi Uzaktan EğitimAraştırma ve Uygulama Merkezi Mühendislik Fakültesi No:215 Balıklarkayası Mevkii 78050 Karabük TÜRKİYE class A { public: int i; void yaz() { y=5.2; z=78; cout<<"y= "<<y<<" i= "<<i<<" z= "<<z<<endl; } private: float y; int z; }; // ---------------- Ana program ---------------- #include<iostream> #include "A.h" using namespace std; int main() { A n1; n1.i=5; n1.yaz(); cin.get(); return 0; } Örnek 2: Aşağıda verilen programda Anaprogram derlendiğinde redefinition of `class A' ve previous definition of `class A' hatası ile karşılaşmaktayız. Türkçe anlamı A sınıfının ana programda iki defa tanımlandığını ifade etmektedir. Çünki B.h dosyasına A.h dosyası dahil edilmiş. Daha sonda Ana programda #include "A.h" #include "B.h" Satırları ile A.h dosyası iki defa eklenmiş olmaktadır. Bu şekilde tekrar tanımlar nasıl önlenebilir.. Örnek 3 de bunun çözümü verilmiştir. //----------- A.h----------------- class A { float y; int z; public: int i; }; //---------------- B.h ------------- #include "A.h" class B { public: double x; };
  • 3. BLM301 Mikroişlemciler 3 Karabük Üniversitesi Uzaktan EğitimAraştırma ve Uygulama Merkezi Mühendislik Fakültesi No:215 Balıklarkayası Mevkii 78050 Karabük TÜRKİYE //----------------- Ana program------------------ #include<iostream> #include "A.h" #include "B.h" using namespace std; int main() { A A1; B B1; A1.i=10; B1.x=20; cout<<A1.i<<endl; cout<<B1.x<<endl; cin.get(); return 0; } Örnek3: //-------------- A.h----------------------- #ifndef A_H //A.h dosyası tanımlanmadı ise #define A_H //A.h dosyasını tanımla class A { float y; int z; public: int i; }; #endif //-------------- B.h-------------------- #ifndef B_H //B.h dosyası tanımlanmadı ise #define B_H //B.h dosyasını tanımla #include "A.h" class B { public: double x; }; #endif // ------------------- Ana program --------------- #include<iostream> #include "B.h" #include "A.h" using namespace std; int main() { A A1; B B1; A1.i=10; B1.x=20; cout<<A1.i<<endl;
  • 4. BLM301 Mikroişlemciler 4 Karabük Üniversitesi Uzaktan EğitimAraştırma ve Uygulama Merkezi Mühendislik Fakültesi No:215 Balıklarkayası Mevkii 78050 Karabük TÜRKİYE cout<<B1.x<<endl; cin.get(); return 0; } // A.h #include "B.h" #ifndef A_H #define A_H class A { public: int x,y,z; int add(int a, int b, int c) { x=a; y=b; z=c; return (x+y+z); } }; #endif // H_A //B.h #ifndef B_H #define B_H class B { public: double d1,d2; double add(double a,double b) { d1=a; d2=b; return (d1+d2); } }; #endif // H_B //week14.cpp #include <conio.h> using namespace std; #include <iostream> #include "A.h" #include "B.h" int main () { A a; B b; cout<<a.add(3,15,17)<<endl; cout<<b.add(3.1,15.1)<<endl; getch(); return 0; }
  • 5. BLM301 Mikroişlemciler 5 Karabük Üniversitesi Uzaktan EğitimAraştırma ve Uygulama Merkezi Mühendislik Fakültesi No:215 Balıklarkayası Mevkii 78050 Karabük TÜRKİYE Sınıflarda Static ifadesinin kullanımı. #include <conio.h> using namespace std; #include <iostream> int id=10; int genId(){ static int id=0; ::id++; return id; } int main () { int id=25; cout<<genId()<<endl; cout<<genId()<<endl; cout<<id<<endl; cout<<::id<<endl; getch(); return 0; } // static variable #include <conio.h> using namespace std; #include <iostream> int GenerateID() { static int ID = 0; return ID++; } int main() { cout << GenerateID() << endl;
  • 6. BLM301 Mikroişlemciler 6 Karabük Üniversitesi Uzaktan EğitimAraştırma ve Uygulama Merkezi Mühendislik Fakültesi No:215 Balıklarkayası Mevkii 78050 Karabük TÜRKİYE cout << GenerateID() << endl; cout << GenerateID() << endl; getch(); return 0; } #include <conio.h> using namespace std; #include <iostream> class Something { private: static int IDGenerator; int ID; public: Something() { ID = IDGenerator++; } int GetID() { return ID; } int GetIDGenerator() { return IDGenerator; } }; int Something::IDGenerator = 0; int main() { Something cFirst; Something cSecond; Something cThird; cout << cFirst.GetID(); cout << cFirst.GetIDGenerator(); cout << cSecond.GetID(); cout << cSecond.GetIDGenerator(); cout << cThird.GetID(); cout << cThird.GetIDGenerator(); getch(); return 0; }
  • 7. BLM301 Mikroişlemciler 7 Karabük Üniversitesi Uzaktan EğitimAraştırma ve Uygulama Merkezi Mühendislik Fakültesi No:215 Balıklarkayası Mevkii 78050 Karabük TÜRKİYE Bir sınıf içinde bir değişken static ile tanımlanırsa, Bu değişkenbu sınıftan oluşturulan bütün nesneler tarafıdan ortak kullanılır. #include<iostream> using namespace std; class Bir { public: static int sayi; Bir() {sayi ++;} }; int Bir::sayi=0; //static değişkene ilk değer verme int main() { Bir n1,n2,n3,n4,n5,n6; cout<<"Nesnelerin sayisi: "<<n1.sayi<<endl; n1.sayi=6; n2.sayi=8; n3.sayi=16; n4.sayi=5; n5.sayi=7; n6.sayi=53; cout<<"n1.sayi= "<<n1.sayi<<endl; cout<<"n2.sayi= "<<n2.sayi<<endl; cout<<"n3.sayi= "<<n3.sayi<<endl; cout<<"n4.sayi= "<<n4.sayi<<endl; cout<<"n5.sayi= "<<n5.sayi<<endl; cout<<"n6.sayi= "<<n6.sayi<<endl; cin.get(); return 0; }