
C++であるクラス継承したクラスの代入演算子で
継承元のクラスの代入演算子を呼び出す方法がわかりません。
こんな感じのソースです。
class T {
T& operator=(const T &t) {
}
}
class U :: T{
U& operator=(const U &u) {
// ここでT.operator=()の代入演算を実行したい
}
}
((T)(*this)).operator=((T)(u))のようにキャストすればいけるかと思ったんですが、
コンパイルエラーでした。
よろしくお願いします。
また、これはプログラム上好ましくない手法でしたら、
別な実現方法をお教えください。
No.4
- 回答日時:
たまたま見てしまったので・・・
#2さんの
>return T::operator=(u);
アップキャストは自動的に行われるから、この場合の引数にはキャストは不要で、T&をreturnするにはダウンキャスト無しには無理だから、戻り値は捨てた方が良さそうです。
T::operator=(u);
//のこりの処理
return *this;
No.1
- 回答日時:
なんか不自然ですが。
・継承の記述
クラスParentからクラスChildに継承する場合、はじめのクラスの宣言で
class Child : public Parent
{//うんぬん
}
の様に、セミコロンひとつで区切ります。
・publicなどの未記入
具体的な動作はコンパイラごとに異なりますが、public, protected, privateの記入をしなかった場合、多くのコンパイラはprivateで宣言されたものとして扱います。private宣言されたものは継承できませんので、publicまたはprotectedを記入してください。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
MFCのCListCtrlでスクロールを検出
-
正規表現 [^/]+ の意味を教えて
-
FriendとPublicの違い。。。
-
C++で継承元のクラスの代入演算...
-
Visual C++ 6.0 でクラス表示が...
-
enumの継承?
-
Homepage Managerの事
-
ダイアログ表示時にチェックボ...
-
SetTimerの行でアサートエラー...
-
個々の関数について継承してい...
-
C#で定数クラスをシングルトン...
-
(UWSC) 「#32770」の意味わかり...
-
Delphi6でVB.NETで作成のDLL呼出
-
DataGridViewのセルに斜線を引...
-
エディットコントロールでEnter...
-
エディットコントロールのイベ...
-
クラスのアドレスを引数として...
-
継承したクラスを、継承元のク...
-
openFrameworks-複数台Arduino...
-
【C++】相互参照
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBA チェックボックスをオーバ...
-
FriendとPublicの違い。。。
-
既定のコンストラクタがない?
-
イベントにAddHandlerされてい...
-
(UWSC) 「#32770」の意味わかり...
-
ボタンのオーナードローについて
-
MFCアプリのコマンドラインでパ...
-
ダイアログ表示時にチェックボ...
-
【ASP.NET】 独自で作成したク...
-
エディットコントロールでEnter...
-
MFCのドラッグ&ドロップについて
-
オーバーライド関数の呼び出し...
-
DataGridViewのセルに斜線を引...
-
MFCのCListCtrlでスクロールを検出
-
C++ protectedにアクセス不可
-
ダイアログクラスのコントロー...
-
クラスのアドレスを引数として...
-
エディットコントロールのイベ...
-
個々の関数について継承してい...
-
WindowsAPIのリストビューの...
おすすめ情報