构造函数语法缺少形式参数

时间:2018-01-20 20:40:35

标签: c++ class-template

我正在编写一个包含对象数组的类模板。 我收到一条错误,指出"构造函数语法缺少形式参数"。 该错误与代码行DT List [100];

相关联
template <class DT>
class List
{
private:
    DT List[100];
    int numberInList;
    int listSize;
    int nextIndex;
public:
    List();
    void insert(DT&);
    DT getNext();
    bool getMember(DT&);
    int getNumber();
};
#endif

template<class DT>
List<DT>::List()
{
   numberInList = 0;
   listSize = 0;
   nextIndex = 0;
}

1 个答案:

答案 0 :(得分:0)

对于将来的读者(如@UnholySheep在评论中指出的那样),问题很可能源于成员 main(){ byte* buffer_data; // (...) buffer_data <- 'h.264 file' - b-frame loaded from disk. AVBufferRef* pAVBuf = (AVBufferRef*)buffer_data; AVPacket pkt_demo; int r = av_packet_from_data(&pkt_demo, buffer_data, lSize); //or pkt_demo.buf = pAVBuf; ? decode(codec_ctx, frame, &pkt_demo, fout); av_packet_unref(pkt); } void decode(AVCodecContext* dec_ctx, AVFrame* frame, AVPacket* pkt, FILE* f) { int ret; //send packet to decoder ret = avcodec_send_packet(dec_ctx, pkt); if (ret < 0) { fprintf(stderr, "Error sending a packet for decoding\n"); exit(1); } while (ret >= 0) { // receive frame from decoder // we may receive multiple frames or we may consume all data from decoder, then return to main loop ret = avcodec_receive_frame(dec_ctx, frame); if (ret == AVERROR(EAGAIN) || ret == AVERROR_EOF) { printf("i'm on it\n"); return; } else if (ret < 0) { // something wrong, quit program fprintf(stderr, "Error during decoding\n"); exit(1); } printf("saving frame %3d\n", dec_ctx->frame_number); fflush(stdout); // display frame on sdl window displayFrame(frame, dec_ctx); // send frame info to writing function pgm_save(frame->data[0], frame->linesize[0], frame->width, frame->height, f); } } 。类的名称是DT List[100];,成员的名称也是。这可能会引起一些解析混乱。更改成员变量的名称应该可以解决该错误。