如何解决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 举报,一经查实,本站将立刻删除。