Şimdi Ara

Deneyimli arkadaşlar bakabilirmi ?

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
1
Cevap
0
Favori
329
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • Merhaba arkadaşlar aşağıdaki kodda birbirinden bağımsız iki tane sınıfımız var ilk sınıf nesnesini diğer sınıf nesnesine cast ederek kullanabiliyoruz üstelik cast ettiğimiz sınıf kurucusuna parametre alarak başlamak zorundayken. Peki bu nasıl mümkün olabilir ? verdiğimiz adreste ilk sınıf nesnemiz varken program o adresten nasıl diğer sınıfa ulaştırabiliyor bizi ? bu bir yöntem midir? istenmeyen durum mudur ?

    #include <iostream>
    #include <stdio.h>
    #include <stdlib.h>

    using namespace std;


    class ilk_sinif
    {
    public:
    void goster(){ cout<<"ilk sinif calisti"<<endl; }

    };


    class baska_sinif{

    public :

    int x;
    int y;

    baska_sinif(int a, int b):x(a),y(b) {
    cout<<"baska sinif calisti"<<endl;
    cout<<"x: "<<this->x << " " << "y: "<< this->y<<endl;
    }

    baska_goster(){cout<<"baska sinif calisti"<<endl; }

    baska_sinif* deger_ver(int c, int k){

    this->x=c;
    this->y=k;

    return this;

    }

    };


    int main()
    {

    ilk_sinif ilk_sinif_nesnesi;


    cout<<"ilk sinif nesne adresi: "<< &ilk_sinif_nesnesi<<endl;
    cout<<endl;

    ((baska_sinif*)&ilk_sinif_nesnesi)->baska_goster();

    cout<< ((baska_sinif*)&ilk_sinif_nesnesi)->x <<endl;

    cout<<((baska_sinif*)&ilk_sinif_nesnesi)->y <<endl;

    cout<<endl;

    cout<< "x deger: " << (((baska_sinif*)&ilk_sinif_nesnesi)->deger_ver(10, 20))->x << endl;

    cout<< "y deger: " << (((baska_sinif*)&ilk_sinif_nesnesi)->deger_ver(10, 20))->y << endl;

    cout<<endl;
    cout<< "adres:" << ((baska_sinif*)&ilk_sinif_nesnesi)<<endl;


    return 0;

    }




    < Bu mesaj bu kişi tarafından değiştirildi the_night -- 5 Aralık 2017; 0:11:17 >







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