Şimdi Ara

Global Değişken/C++

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
4
Cevap
0
Favori
3.652
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • 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.



  • 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..
  • 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.
  • 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.




  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.