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.
yeni mesaja git
Yeni mesajları sizin için sürekli kontrol ediyoruz, bir mesaj yazılırsa otomatik yükleyeceğiz.Bir Daha Gösterme