• 15-04-2020, 14:02:19
    #1
    Üyeliği durduruldu
    Merhaba arkadaşlar, takıldığım bir noktada sizlere danışmak istedim. Bilgisi olan arkadaşlar yardımcı olursa sevinirim
    Şimdi, ben c++'da bir sınıf oluşturdum. Bu sınıfın içerisinde x ve ye olarak integer tipinde iki adet değişken bulunuyor. Bu iki değişken private kısmında tabi. Şimdi ben main'de x ve y yi kullanıcıdan alıp sınıfa gönderiyorum. Buraya kadar herşey güzel hoş. Public kısmında int getX(); ve int getY(); diye iki metod var. Bu metodlardan birisi X i return ediyor diğeri Y yi return ediyor. Benim istediğim şu, int getXY(); diye bir metod tanımlamak istiyorum ve hem X i hemde Y yi return etmesini istiyorum. Malum bir fonksiyonun birden fazla değeri normal şartlarda return edemeyeceğinden, bir kaç yöntemden biri olan diziler yöntemi ile bunu yapmak istiyorum.Yardım eder misiniz yapamadım.

    İpucu buldum şöyle : Mainde cout ederken -> cout << p1.getXY()[0]; ve cout << p1.getXY()[1] olarak yazdırabilirmişim
  • 15-04-2020, 14:15:27
    #2
    struct yapısı ile daha sağlıklı geri dönüş sağlarsın ama array ile yapmak istiyorsan;

    return new int[] { x,y };

    şeklinde geri döndürebilirsin.
  • 15-04-2020, 14:21:31
    #3
    Üyeliği durduruldu
    Dogukan hocamın dediğini yapınca şöyle hatalar aldım

    https://hizliresim.com/2J7pT7
  • 15-04-2020, 14:22:02
    #4
    Kimlik doğrulama veya yönetimden onay bekliyor.
    suvogram adlı üyeden alıntı: mesajı görüntüle
    Merhaba arkadaşlar, takıldığım bir noktada sizlere danışmak istedim. Bilgisi olan arkadaşlar yardımcı olursa sevinirim
    Şimdi, ben c++'da bir sınıf oluşturdum. Bu sınıfın içerisinde x ve ye olarak integer tipinde iki adet değişken bulunuyor. Bu iki değişken private kısmında tabi. Şimdi ben main'de x ve y yi kullanıcıdan alıp sınıfa gönderiyorum. Buraya kadar herşey güzel hoş. Public kısmında int getX(); ve int getY(); diye iki metod var. Bu metodlardan birisi X i return ediyor diğeri Y yi return ediyor. Benim istediğim şu, int getXY(); diye bir metod tanımlamak istiyorum ve hem X i hemde Y yi return etmesini istiyorum. Malum bir fonksiyonun birden fazla değeri normal şartlarda return edemeyeceğinden, bir kaç yöntemden biri olan diziler yöntemi ile bunu yapmak istiyorum.Yardım eder misiniz yapamadım.

    İpucu buldum şöyle : Mainde cout ederken -> cout << p1.getXY()[0]; ve cout << p1.getXY()[1] olarak yazdırabilirmişim


    http://cpp.sh/4jfvx

    Bunu demek istiyorsunuz sanırım
  • 15-04-2020, 14:25:55
    #5
    Üyeliği durduruldu
    sawashan adlı üyeden alıntı: mesajı görüntüle
    http://cpp.sh/4jfvx

    Bunu demek istiyorsunuz sanırım
    Hocam verdiğiniz siteye giremiyorum girilmiyor
  • 15-04-2020, 14:27:43
    #6
    Aşağıdaki şekilde yapabilirsiniz:
    struct Coordinate {
    int x, y;
    };
    
    class test
    {
    private:
    Coordinate coordinate;
    public:
    void setX(int x) { coordinate.x = x; };
    void setY(int y) { coordinate.y = y; };
    void setXY(int x, int y) { coordinate = { x,y }; };
    int getX() { return coordinate.x; };
    int getY() { return coordinate.y; };
    Coordinate getXY() { return coordinate; };
    };
    Test için:

    #include "test.h"
    ...
    void main(){
    test t;
    t.setX(10);
    t.setY(11);
    std::cout << "X:" << t.getX() << std::endl;
    std::cout << "Y:" << t.getY() << std::endl;
        std::cout << "X and Y : " << t.getXY().x << "," << t.getXY().y<<std::endl;
    }
  • 15-04-2020, 14:30:40
    #7
    suvogram adlı üyeden alıntı: mesajı görüntüle
    Hocam verdiğiniz siteye giremiyorum girilmiyor
    Site gidip geliyor, şuan açık.


    #include <iostream>

    using namespace std;

    void GetXY(int * xy)
    {
    xy[0] = 5;
    xy[1] = 10;
    }

    int main()
    {
    int xy[2];
    GetXY((int*)xy);

    cout << xy[0] << "n";
    cout << xy[1];

    return 0;
    }
  • 15-04-2020, 14:32:35
    #8
    Üyeliği durduruldu
    sawashan adlı üyeden alıntı: mesajı görüntüle
    http://cpp.sh/4jfvx

    Bunu demek istiyorsunuz sanırım
    sawashan adlı üyeden alıntı: mesajı görüntüle
    Site gidip geliyor, şuan açık.


    #include <iostream>

    using namespace std;

    void GetXY(int * xy)
    {
    xy[0] = 5;
    xy[1] = 10;
    }

    int main()
    {
    int xy[2];
    GetXY((int*)xy);

    cout << xy[0] << "n";
    cout << xy[1];

    return 0;
    }
    Yok hocam bu değil yapmak istediğim yine de teşekkürler



    Dogukan adlı üyeden alıntı: mesajı görüntüle
    Aşağıdaki şekilde yapabilirsiniz:
    struct Coordinate {
    int x, y;
    };
    
    class test
    {
    private:
    Coordinate coordinate;
    public:
    void setX(int x) { coordinate.x = x; };
    void setY(int y) { coordinate.y = y; };
    void setXY(int x, int y) { coordinate = { x,y }; };
    int getX() { return coordinate.x; };
    int getY() { return coordinate.y; };
    Coordinate getXY() { return coordinate; };
    };
    Test için:

    #include "test.h"
    ...
    void main(){
    test t;
    t.setX(10);
    t.setY(11);
    std::cout << "X:" << t.getX() << std::endl;
    std::cout << "Y:" << t.getY() << std::endl;
        std::cout << "X and Y : " << t.getXY().x << "," << t.getXY().y<<std::endl;
    }
    Hocam çok çok çok teşekkür ederim ama bunu diziler ile gösterseniz ? Kaynak kod kısımlarını şöyle göndereyim altada siz ordan düzenlerseniz kolayınıza gelir. Çok teşekkür ederim.

    MyPoint.h
    #include <iostream>
    #ifndef MYPOINT_H
    #define MYPOINT_H
    class MyPoint
    {
        public:
            MyPoint();
            MyPoint(int,int);
            int getX();
            void setX(int);
            int getY();
            void setY(int);
            int getXY();
            void setXY(int,int);
            void toString();
            double distance(int,int);
            double distance();
        private:
            int x;
            int y;
            int a;
            int b;
    };
    
    #endif

    MyPoint.cpp
    #include "MyPoint.h"
    #include <iostream>
    #include <math.h>
    MyPoint::MyPoint() {
        x = 0;
        y = 0;
        coordinate.q=x;
        coordinate.w=y;
    }
    MyPoint::MyPoint(int a, int b) {
        x = a;
        y = b;
    }
    int MyPoint::getX(){
        return x;
    }
    void MyPoint::setX(int a){
        x=a;
    }
    int MyPoint::getY(){
        return y;
    }
    void MyPoint::setY(int a){
        y=a;
    }
    int MyPoint::getXY(){
        
    }
    void MyPoint::setXY(int a,int b){
        x = a;
        y = b;
    }
    void MyPoint::toString(){
        cout << "Nokta kordinatınız : (" << x << "," << y << ")" << endl;
    }
    double MyPoint::distance(int a, int b){
        return sqrt((x-a)*(x-a)+(y-b)*(y-b));
    }
    double MyPoint::distance(){
        return sqrt((x)*(x)+(y)*(y));
    }
  • 15-04-2020, 14:35:50
    #9
    suvogram adlı üyeden alıntı: mesajı görüntüle
    Yok hocam bu değil yapmak istediğim yine de teşekkürler
    http://cpp.sh/774vf


    Siz dizi olarak döndürmek istiyorsunuz sanırım yani bunu özellikle istiyorsunuz. Doğru mu ?