|
From: | Ilia Mirkin |
Subject: | Re: [Discuss-gnuradio] updating abstract classes |
Date: | Wed, 26 Apr 2006 17:09:28 -0400 |
User-agent: | Internet Messaging Program (IMP) H3 (4.0.3) |
Quoting Charles Swiger <address@hidden>:
./atsc_equalizer.h:41: error: cannot declare field `atsc_equalizer::d_equalizer' to be of type `atsci_equalizer' ./atsc_equalizer.h:41: error: because the following virtual functions are abstract: ./atsci_equalizer.h:159: error: virtual void atsci_equalizer::filter_field_sync(const float*, float*, int, int, int) ./atsci_equalizer.h:140: error: virtual void atsci_equalizer::filter_data_seg_sync(const float*, float*, int, int)
I'm guessing that you don't find these messages particularly informative, so here's what they mean: d_equalizer is of type atsci_equalizer; you're trying to instantiate one, but atsci_equalizer is an abstract class because it doesn't have definitions forthese functions: filter_field_sync, filter_data_seq_sync. You can't instantiate abstract classes, so you must either define those functions or you must specify
a more specific type for d_equalizer that can be instantiated. The reason you probably see segfaults with the pointer version is because you never actually create an object that d_equalizer would point to (at least in the code that you showed). -Ilia
[Prev in Thread] | Current Thread | [Next in Thread] |