C ++头文件中的构造函数初始化列表返回异常定义错误的类型

问题描述

我正在创建一个名为“剪辑”的对象,该对象将从文件中加载音频并将其存储在缓冲区中,并将执行分析。构造函数中的参数是对字符串的引用,JUCE格式管理器和存储在另一个对象中的window方法枚举。

我正在使用拆分的cpp和头文件。在进行初始化和右值操作时,我已经在构造函数上使用了初始化列表,仅在cpp文件中使用了,我通常建议这样做。

我的问题是Xcode在cpp文件的构造函数定义顶部显示“'Clip :: Clip'的超出定义的返回类型不同于声明中的返回类型”错误。奇怪的是,它有时只显示出来。有时,编译器会显示“ Expected unqualified-id”错误。有时它根本没有显示错误。

这是什么问题?与头文件相比,我没有在cpp文件的构造函数中使用任何其他参数。请帮忙。

Clip.h文件:

#pragma once
#include <iostream>
#include <JuceHeader.h>

class Clip
{
public:
    Clip(std::string &filePath,std::string &fileName,juce::AudioFormatManager                 
        &audioFormatManRef,juce::dsp::WindowingFunction<double>::WindowingMethod 
        &windowRef);
    ~Clip();
private:
    std::string path,name;
    int numSamples,numChannels,thisSampleRate;
    juce::AudioBuffer<float>* audioBuffer;
    juce::dsp::WindowingFunction<double>::WindowingMethod &windowMethodRef;
 };

Clip.cpp文件:

#include "Clip.h"

// "Return type of out-of-line definition" error shows here
Clip::Clip(std::string &filePath,juce::AudioFormatManager 
    &audioFormatManRef,juce::dsp::WindowingFunction<double>::WindowingMethod &windowRef) : 
    path(filePath),name(fileName),windowMethodRef(windowRef)
{
    std::cout << "Loading new clip...";

    // Create file reader and load data into buffer
    juce::File file(path);
    juce::AudioFormatReader* formatReader = audioFormatManRef.createReaderFor(file);
    numSamples = juce::roundToInt(formatReader->lengthInSamples);
    numChannels = formatReader->numChannels;
    audioBuffer->setSize(numChannels,numSamples);
    formatReader->read(audioBuffer,numSamples,false,false);
}

Clip::~Clip()
{
    delete audioBuffer;
}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)