我收到以下错误,说明没有匹配的函数调用:呼叫错误没有匹配的功能在类的构造函数
no matching function for call to 'Chord::Chord(const char [5], Note* [3], int, int)'
我是相当新的C++,所以我可以做一个基本的错误。但是我想要做的是在堆上放置注释,将它们传递给构造函数,并将这些注释复制到Chord
类中的私有属性中。
我似乎无法确定为什么会发生这种情况。
内主要 ...
Note *notes[] = {
new Note(0, "C", "B#"),
new Note(5, "E", "Fb"),
new Note(8, "G", "G")
};
Chord chord = new Chord("CMaj", notes, 127, 1);
Chord.h
/*
* Chord.h - Library for generating and playing chords
* Created by James Jeffery <[email protected]>, March 11, 2017.
*/
#ifndef Chord_h
#define Chord_h
#include "Arduino.h"
#include "Note.h"
class Chord
{
public:
Chord(String chord_name, Note notes[], int octave, int velocity);
String getChordName();
void play();
void stop();
private:
Note notes[];
String chord_name;
int octave;
int velocity;
};
#endif
啊。我认为这将是一个简单的问题。请作为回答,我会接受。 – BugHunterUK
我原来的建议实际上是错误的,我试着在我的答案中解释一下 - 如果有什么不清楚的地方,请留言 – UnholySheep
看起来你是一个正在恢复的Java程序员。 C++程序员尽可能避免使用“new”这个词。 (和'笔记[];'成员是无效的C++。) – molbdnilo