派生クラスで,基本クラスのメンバ変数である構造体の型を戻り値の型とするメンバ関数を作りたいのですがエラーが発生してしまいます.
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.2
- 回答日時:
private、protected、publicの違いは理解してますか?
NODE構造体はprotectedですから、publicにしないと戻り値としては
使えないでしょうね。
No.3
- 回答日時:
1つ試してもらいたいのですが, class B における sort の宣言を public ではなく protected にしたらどうなりますか?
これでもその行でエラーが出るなら, それは単にコンパイラのバグです.
そうでないなら, ちょっと厳しいとは思うけどコンパイラの親切心かもしれない. 基底クラス A で protected な構造体を派生クラスB で 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ランキング
-
既定のコンストラクタがない?
-
C++ protectedにアクセス不可
-
派生クラスから基本クラスprote...
-
ウィンドウの背景に画像を配置する
-
ダイアログクラスのコントロー...
-
System.Net.HttpWebRequest、も...
-
CViewクラスの切り替え
-
MFC CSplitter内にコントロール...
-
vba sendKeysを送る相手のソフ...
-
Delphi6でVB.NETで作成のDLL呼出
-
基本クラスのポインタで、派生...
-
MFCのCDialogクラスについて、、、
-
このコンパイルエラーの意味に...
-
継承を重ねた場合のコストはど...
-
Delphi2007のCheckBox.Font.Col...
-
IncludeではなくClassで宣言す...
-
FriendとPublicの違い。。。
-
C++では構造体がメンバ関数をも...
-
親クラスのコンストラクタは? ...
-
クラス メンバ関数インライン化
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
FriendとPublicの違い。。。
-
既定のコンストラクタがない?
-
イベントにAddHandlerされてい...
-
クラスのアドレスを引数として...
-
ダイアログ表示時にチェックボ...
-
(UWSC) 「#32770」の意味わかり...
-
エディットコントロールのイベ...
-
エディットコントロールでEnter...
-
WindowsAPIのリストビューの...
-
CMainFrameクラスの使い方
-
DebugクラスとTraceクラスの違い
-
MessageBoxを継承したい
-
C++ protectedにアクセス不可
-
MFCアプリのコマンドラインでパ...
-
このコンパイルエラーの意味に...
-
MFCのドラッグ&ドロップについて
-
【ASP.NET】 独自で作成したク...
-
派生クラスから基本クラスprote...
-
ダイアログクラスのコントロー...
-
C#で通常のbuttonコントロール...
おすすめ情報