2

自分では分からないことを聞きに来ました。+32 ビットの配列を格納し、 、-/などの単純な数学演算を実行できる小さなクラスをコーディングしてきました*

次のようなクラスがあるとします。

class Binary_Class
{
  char bin[32];               // 32 bits array to hold an unsigned binary number
  void set_dec(int value){};  // setting the bin[32] value based on input value

  // I have operator + and = to perform on objects of this class.
  Binary_Class& operator= (const Binary_Class&);
  const Binary_Class operator+ (const Binary_Class&);
}

今までは class の , , の3abのオブジェクトを宣言してから toと, という文を使えば問題なかった(?)cBinary_Classset_decabc=a+b

しかし、新しいクラスを使用してクラス バイナリを拡張したい

class Binary_Class_Extended: public Binary_Class
{
  // weird functions
}

クラス の3 つのオブジェクトabを宣言した場合、それ以前と同じように使用できますか?cBinary_Class_Extendedc=a+b

Netbean ではc=a+b、すべてが of の場合に一致する operator= はありませんが、そのステートメントが機能Binary_Class_Extendedすると宣言するcと、Binary_Classつまり、 が新しいクラスに引き継がれないかのようにをa+b返します。const Binary_Classoperator+

私は何かを見逃していますか、それともこれがそのままですか?

もちろん、これはただの割り当てなので、コード全体を投稿できますが、現時点ではこれらの情報で十分だと思います。


アップデート

 class Binary_Class
 {
  char bin[32];               // 32 bits array to hold an unsigned binary number
  void set_dec(int value){};  // setting the bin[32] value based on input value

  //i have operator + and = to perform on objects of this class.
  Binary_Class& operator= (const Binary_Class&);
  const Binary_Class operator+ (const Binary_Class&) const;
}

class Binary_Class_Extended: public Binary_Class
{
  // weird functions
}

Binary_Class_Extendedこのエラーのすべてのオブジェクトを表示しようとすると:

main.cpp:285: エラー: 'sd = ((Binary_Class*)(&sa))->Binary_Class::operator+(((const Binary_Class&)((const Binary_Class*)((Binary_Class*) の 'operator=' に一致しません)(&sb)))))'

Binary_ET_Class sa,sb,sc;

sc=sa+sb// 初期化saされ、 sbnull 以外の値に。

私が取り組んでいる完全なソース コード: https://pastebin.com/eiVz0f5p

4

2 に答える 2

2

継承された関数は指紋を保持するため、Binary_Class operator+ が継承された場合、戻り値は ... ? になります。

于 2013-06-18T07:34:19.870 に答える