現在以下のようなクラスを考えています。
template <int> class Test;
Test<0>は引数なしの関数func()をもつ。
Test<N>は引数にintをN個までとる関数func(int,...)をもつ。つまり、 func(), func(int), func(int,int), ... , func(int × N)のN+1個の関数を持つ。
その為に次のような実装を考えたのですが、オーバーライドにより基底クラスのfuncが無効になっていしまいます。
Nは10程度なのですが、地道に実装するしかないのでしょうか?
オーバーライドが邪魔です
Re: オーバーライドが邪魔です
これはオーバーライドではありません。
サブクラスの func(int) が基底クラスの func() よりもクラススコープの内側にあるため、
func(int) が先に検索されてしまうのが原因です。
オーバーライドは基底クラスの関数が virtual で、サブクラスで同じ名前・引数の関数が定義されていないと成立しません。
同じ問題が紹介されていますので、参考にどうぞ
http://d.hatena.ne.jp/minekoa/20080222/1203696120
サブクラスの func(int) が基底クラスの func() よりもクラススコープの内側にあるため、
func(int) が先に検索されてしまうのが原因です。
オーバーライドは基底クラスの関数が virtual で、サブクラスで同じ名前・引数の関数が定義されていないと成立しません。
同じ問題が紹介されていますので、参考にどうぞ
http://d.hatena.ne.jp/minekoa/20080222/1203696120