Arama butonu
Bu konudaki kullanıcılar: 1 misafir
3
Cevap
3752
Tıklama
0
Öne Çıkarma
Global Değişken/C++
:
15 yıl
Yüzbaşı
Konu Sahibi

Projem üzerinde program açılışında kullanıcıdan 3 farklı değişken istiyor. Sonra bu 3 değişkeni void fonksiyonları içinde kullanmam gerekiyor. Bunu yaparken fonksiyona giriş değeri olarak girmek istediğimde bu fonksiyonlar da birbirine bağlantılı olduğum için her bir fonksiyonun içine giriş değeri olarak atamam gerekiyor ki bu bana büyük bir sıkıntı oluşturuyor.
int main içerisinde veya int mainden önce gireceğim bir global değişken ibaresiyle bu 3 değişkenin fonksiyonlar içerisinde kullanılabilir olmasını sağlamam gerek anlayacağınız.
#define kullanamıyorum çünkü bu sayılar sabit değil. Teşekkürler.

DH forumlarında vakit geçirmekten keyif alıyor gibisin ancak giriş yapmadığını görüyoruz.

Üye olduğunda özel mesaj gönderebilir, beğendiğin konuları favorilerine ekleyip takibe alabilir ve daha önce gezdiğin konulara hızlıca erişebilirsin.

Üye Ol Şimdi Değil



E
15 yıl
Yüzbaşı

normal bir değişken nasıl tanımlıyorsan, aynı şekilde fonksiyonların dışında kullanımından önce tanımlarsan sorunun çözülür. Ya da pointer kullanabilirsin..


Bu mesaja 1 cevap geldi.
G
15 yıl
Yarbay

Global değişkenlerden mümkün olduğu kadar kaçınmak lazım. Fonksiyonlar aynı değişkenler üzerinde birbiriyle bağlantılı işlemler yapıyorlar sanırım. C++ demişsin, niçin nesne (class) kullanmıyorsun.

Eğer nesne olmaya uygun değilse class içinde değişkenleri ve fonksiyonları komple static olarak tanımlarsın. Böylece hem veriler dışardan korunmuş olur hemde fonksiyonları nesne oluşturmaya gerek kalmadan direkt kullanabilirsin.



S
15 yıl
Çavuş

quote:

Orijinalden alıntı: :DHoroHoro:D

Projem üzerinde program açılışında kullanıcıdan 3 farklı değişken istiyor. Sonra bu 3 değişkeni void fonksiyonları içinde kullanmam gerekiyor. Bunu yaparken fonksiyona giriş değeri olarak girmek istediğimde bu fonksiyonlar da birbirine bağlantılı olduğum için her bir fonksiyonun içine giriş değeri olarak atamam gerekiyor ki bu bana büyük bir sıkıntı oluşturuyor.
int main içerisinde veya int mainden önce gireceğim bir global değişken ibaresiyle bu 3 değişkenin fonksiyonlar içerisinde kullanılabilir olmasını sağlamam gerek anlayacağınız.
#define kullanamıyorum çünkü bu sayılar sabit değil. Teşekkürler.


Bunu istersen ana programın bulunduğu dosya içerisinde kullanabilirsin - yani main fonksiyonunun bulunduğu dosya içerisinde - istersen farklı bir yerden erişerek de kullanabilirsin. Örneğin;

Ana program içerisinde kullanımına örnek bir kod

 
#include <iostream>

using namespace std;

int globalDegisken;

int main()
{
int localDegisken;
globalDegisken = 18;
}


Bunu istersen main fonksiyonunda yine deger okutarak da yapabilirsin. İstediğn gibi I/O yönetimini kullanabilirsin.

 
int main()
{
int localDegisken;

cin >> globalDegisken;
cout << globalDegisken;
}



Eğer farklı bir dosya içerisinden - diyelim ki ikinci.cpp dosyası - çağırmak istiyorsan, şunun gibi bir yöntem kullanabilirsin...

ikinci.cpp dosyası
int globalDegisken = 18;



code.cpp dosyası
 
#include <iostream>

using namespace std;

extern int globalDegisken; // extern ifadesi degiskenin baska bir yerden (dosya disi) cagirim yapildigini gosterir

int main()
{
cin >> globalDegisken;
cout << globalDegisken;
}


İsteğe bağlı olarak header dosyasından da çağırım yapabilirsin. Daha detaylı bilgi istersen yardımcı olmaya çalışırım.

Kolay gelsin.



DH Mobil uygulaması ile devam edin. Mobil tarayıcınız ile mümkün olanların yanı sıra, birçok yeni ve faydalı özelliğe erişin. Gizle ve güncelleme çıkana kadar tekrar gösterme.