我收到以下錯誤,說明沒有匹配的函數調用:呼叫錯誤沒有匹配的功能在類的構造函數
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