9

整数をバイト配列に変換することを目的とした単純なクラスがあります。

class mc_int {
    private: 
        int val;      //actual int
    public: 
        int value();  //Returns value
        int value(int);  //Changes and returns value
        mc_int();  //Default constructor
        mc_int(int);//Create from int
        void asBytes(char*); //generate byte array

        mc_int& operator=(int);
        mc_int& operator=(const mc_int&);

        bool endianity;  //true for little
};

変換と使いやすさのために、operator=メソッドを追加することにしました。しかし、私の実装mc_int& operator=(const mc_int&);は正しくないと思います。

mc_int& mc_int::operator=(const mc_int& other) {
            val = other.value();  
            //    |-------->Error: No instance of overloaded function matches the argument list and object (object has type quelifiers that prevent the match)
}

これは何でしょうか?使ってみましたother->value()が、それも間違っていました。

4

3 に答える 3