派生クラスで,基本クラスのメンバ変数である構造体の型を戻り値の型とするメンバ関数を作りたいのですがエラーが発生してしまいます.
class A{
protected:
struct NODE{
char *name;
NODE *next;
}
NODE *node;
};
class B : public A{
public:
NODE* sort(NODE* fnode);
};
NODE* B::sort(NODE* fnode){ ←エラー
~~~~~
return ○○;
}
現在このような状態です.
よろしくお願いします.
No.1ベストアンサー
- 回答日時:
その位置では NODE という型が宣言されていないからエラーになっているんじゃないですか? とりあえず A::NODE にすればエラーにはならないはずです.
ちょっと気になるんですが, A::NODE を protected にしてますよね. それを返す関数を B では public で宣言してますけど, これは構成としてまずいと思いますよ. A (とその派生クラス) の外からは A::NODE が見えないような気がします.
この回答への補足
A::NODEとしてみたら,その行に対して
error C2248: 'A::NODE' : protected struct (クラス 'A' で宣言されている)にアクセスできません。
と出てきました。。
どうしたらいいんでしょうか。。
No.3
- 回答日時:
1つ試してもらいたいのですが, class B における sort の宣言を public ではなく protected にしたらどうなりますか?
これでもその行でエラーが出るなら, それは単にコンパイラのバグです.
そうでないなら, ちょっと厳しいとは思うけどコンパイラの親切心かもしれない. 基底クラス A で protected な構造体を派生クラスB で public な関数が返しても, もらった方が困りそう.
No.2
- 回答日時:
private、protected、publicの違いは理解してますか?
NODE構造体はprotectedですから、publicにしないと戻り値としては
使えないでしょうね。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) pythonのプログラムについての質問です。 1 2023/05/26 10:31
- 大学・短大 C言語線形リストの問題です 3 2022/12/22 00:45
- オープンソース Vue+Laravelのデザインテンプレートのサンプルが起動できない 1 2022/05/18 21:52
- 工学 永久機関を磁石で作れませんか?ずっと引き寄せる力があると思うのですが何かに利用できないのでしょうか? 2 2022/06/19 08:23
- その他(自然科学) 永久機関を磁石で作れませんか?ずっと引き寄せる力があると思うのですが何かに利用できないのでしょうか? 3 2022/06/22 10:57
- Android(アンドロイド) Team microSDXCカード 256GB この製品は有名で性能は良いものでしょうか 5 2022/09/24 23:25
- C言語・C++・C# C言語初心者 構造体 課題について 1 2023/03/10 19:30
- JavaScript 1日1回引けるJavaScriptおみくじについて 1 2022/12/12 22:28
- C言語・C++・C# C言語 2 2022/07/21 00:02
- C言語・C++・C# C言語初心者 構造体 課題について 2 2023/03/10 19:48
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
FriendとPublicの違い。。。
-
クラスのアドレスを引数として...
-
イベントにAddHandlerされてい...
-
既定のコンストラクタがない?
-
C++では構造体がメンバ関数をも...
-
このコンパイルエラーの意味に...
-
(UWSC) 「#32770」の意味わかり...
-
スプラッシュコントロールの挿...
-
IncludeではなくClassで宣言す...
-
WindowsAPIのリストビューの...
-
form1 から form2 へのデータの...
-
ボタンのオーナードローについて
-
ウィンドウの背景に画像を配置する
-
コンソールアプリでのクリップ...
-
MFCアプリのコマンドラインでパ...
-
VC6 コンパイルエラー C2248に...
-
MessageBoxを継承したい
-
C++/CLIからC++の呼び出しで例外
-
個々の関数について継承してい...
-
VB2008: 継承の場合のコンスト...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
FriendとPublicの違い。。。
-
既定のコンストラクタがない?
-
(UWSC) 「#32770」の意味わかり...
-
クラスのアドレスを引数として...
-
ダイアログ表示時にチェックボ...
-
イベントにAddHandlerされてい...
-
【ASP.NET】 独自で作成したク...
-
MFCアプリのコマンドラインでパ...
-
DebugクラスとTraceクラスの違い
-
ボタンのオーナードローについて
-
OnInitDialog()の関数の組み込み方
-
IncludeではなくClassで宣言す...
-
関数の呼び出し元の検索
-
このコンパイルエラーの意味に...
-
C++ protectedにアクセス不可
-
C++で継承元のクラスの代入演算...
-
DataGridViewのセルに斜線を引...
-
C#で通常のbuttonコントロール...
-
エディットコントロールのイベ...
-
CMainFrameクラスの使い方
おすすめ情報