#include <stdlib.h>
/* 動物クラス */
class CAnimal{
public:
inttype;
voidinit(int);
voidprt(void);
};
/* 犬クラス */
class CDog : public CAnimal{
public:
voidinit(void);
};
/*------------ 動物クラス ------------*/
voidCAnimal::init(int t){
type = t;
}
voidCAnimal::prt(void){
printf("%d\n", type);
}
/*------------ 犬クラス ------------*/
voidCDog::init(void){
type = 10;
}
/*------------ メイン関数 ------------*/
void main(void)
{
CDogdog;
dog.init(1);
dog.prt();
}
メイン関数の「dog.init(1)」(下から3行目)でコンパイルエラーが出ます。継承元の関数はオーバーロードできないのでしょうか? 参考書にはそんなこと書いてありませんし、検索しても似たような事例が見つかりません。
初歩的なことですみませんが、どなたか教えていただけないでしょうか。
No.1
- 回答日時:
さっそくのご回答ありがとうございます。
上のURLを見たのですが、オーバーライドについて書かれていて、オーバーロードについては書かれていないような気がするのですが・・・。
No.2ベストアンサー
- 回答日時:
class CDog : public CAnimal{
public:
using CAnimal::init; //追加
void init(void);
};
としてみてください。
Effective C++ の50項によると継承元の関数を意図せず呼び出すことがないようにこのような仕様になっているらしい。
# 参考URLは検索して見つけた。
# Effective C++に書いてあるって言うから実際に見てみると確かにこの話題だった。
参考URL:http://ml.tietew.jp/cppll/cppll/article/6092
ご回答ありがとうございます。
なるほど、コンパイラの親切だったんですね。
usingを追加したらコンパイルできました。ありがとうございます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Java java 入力 3 4 3 出力 ABC DEFG HIJ このようなプログラムの書き方を教えてくだ 2 2022/07/15 14:18
- C言語・C++・C# c言語の問題です 課題1 (二分探索木とセット) 大きさ size の配列 array を考える。す 2 2023/01/10 21:08
- Java java final 1 2022/06/10 22:49
- Java Java プログラム public class Main { public static void 3 2023/08/10 23:46
- C言語・C++・C# 宣言する関数の形が決まっている状態で、 str1とstr2の文字列をこの順に引っ付けてstrに保存し 2 2022/05/30 18:21
- C言語・C++・C# C pointer? or... 2 2022/03/29 00:47
- C言語・C++・C# c言語の問題です 3 2023/01/10 16:15
- C言語・C++・C# c言語でユーザ関数を利用して入力された文字列を反転させるプログラムを作りたいです。 3 2023/01/29 19:47
- C言語・C++・C# プログラミングペーパーテスト 次の問題の実行結果を答えろ #include int x[ ] = { 1 2022/06/16 21:49
- C言語・C++・C# C# DatagridviewにExcelシートを反映するとエラーが出る 2 2023/05/06 17:12
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【gcc・cygwin】multiple defin...
-
既定のコンストラクタがありま...
-
C++にてtemplateで受け取った任...
-
VC++でGetKeyboardStateがうま...
-
Notepad++の関数リスト表示の変...
-
多重定義が起きている?--lnk20...
-
見た目は同じソースなのにエラ...
-
戻り値を返す関数の前に(void)...
-
ArduinoでMouse関数を使用して...
-
WNDPROC をクラスのメンバにも...
-
コンパイルエラー: LNK2001
-
関数ポインタについて
-
静的でないメンバ関数の呼び出...
-
const_castのつかいどころを教...
-
C言語 ① 5秒間 1秒間隔で点滅を...
-
int main()、void main()、void...
-
gcc: incompatible pointer type
-
(void)0 はどんな意味ですか
-
C#でテンキーの操作は可能でし...
-
LCDモニターの駆動
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【gcc・cygwin】multiple defin...
-
int main()、void main()、void...
-
戻り値を返す関数の前に(void)...
-
既定のコンストラクタがありま...
-
Notepad++の関数リスト表示の変...
-
ArduinoでMouse関数を使用して...
-
多重定義が起きている?--lnk20...
-
C++にてtemplateで受け取った任...
-
静的でないメンバ関数の呼び出...
-
C# Controls.Addで動的に配置し...
-
const_castのつかいどころを教...
-
(void)0 はどんな意味ですか
-
C# KeyDownイベントでショート...
-
gcc: incompatible pointer type
-
C#でラジオボタンを設定に記録...
-
VC++でGetKeyboardStateがうま...
-
C言語 ① 5秒間 1秒間隔で点滅を...
-
void*型の配列について
-
GDI+の使用方法について
-
DirectInput でのエラー
おすすめ情報