5 つのサブクラスを持つ基本クラスがあります。
私の基本クラスにこれがある場合:
virtual CpuPort &getsecondDataPort()=0;
これは、すべてのサブクラスに対してメソッドを実装する必要があることを意味しますよね?
しかし、特定のサブクラスのオブジェクトがある場合にのみそのメソッドを呼び出すことがわかっているので、私はそれを望んでいないので、代わりにこれを書くことができると思いました:
virtual CpuPort &getsecondDataPort();
必要なサブクラスにのみ実装します。しかし、それは私にこのエラーを与えます:
/base.cc:254: undefined reference to `vtable for BaseCPU'
および他のサブクラスから:
undefined reference to `typeinfo for BaseCPU'
BaseCPU は基本クラスのオブジェクトです。
これはより大きなライブラリ (実際にはシミュレーター) の一部であるため、できるだけ変更を少なくしたいと考えています。したがって、これが問題を解決する唯一の方法でない限り、これまでのコードの編成方法に従いたいので、「サブクラスでのみ定義する」などの提案はしないでください。
なぜそれが起こるのかについて何か考えはありますか?
ありがとう