同様の質問がありましたが、解決策を試しましたが、その回答はうまくいかないようです。エラーヘッダファイルのコンストラクタへの関数呼び出しの呼び出しが一致しません
にerror: no matching function for call to ‘DialogueNode:: DialogueNode(std::__cxx11::string&)’ DialogueNode *node = new DialogueNode(s);
EDITその他の注意事項:私はエラーを取得した.h
#include <iostream>
#include <vector>
#include <string>
using std::string; using std::vector;
struct DialogueNode;
struct DialogueOption {
string text;
DialogueNode *next_node;
int return_code;
DialogueOption(string t, int rc, DialogueNode * nn) : text{t},
return_code{rc}, next_node{nn} {}
};
struct DialogueNode {
string text;
vector <DialogueOption> dialogue_options;
DialogueNode();
DialogueNode(const string &);
};
struct DialogueTree {
DialogueTree() {}
void init();
void destroyTree();
int performDialogue();
private:
vector <DialogueNode*> dialogue_nodes;
};
た.cpp
#include "dialogue_tree.h"
DialogueNode::DialogueNode(const string &t) : text{t} {}
void DialogueTree::init() {
string s = "Hello";
for(int i = 0; i < 5; i++) {
DialogueNode *node = new DialogueNode(s);
dialogue_nodes.push_back(node);
delete node;
}
}
void DialogueTree::destroyTree() {
}
int DialogueTree::performDialogue() {
return 0;
}
int main() {
return 0;
}
:私は、次のコードを持っています
dialogue_tree.h:17:8: note: candidate: DialogueNode::DialogueNode() dialogue_tree.h:17:8: note: candidate expects 0 arguments, 1 provided dialogue_tree.h:17:8: note: candidate: DialogueNode::DialogueNode(const DialogueNode&) dialogue_tree.h:17:8: note: no known conversion for argument 1 from ‘std::__cxx11::string {aka std::__cxx11::basic_string<char>}’ to ‘const DialogueNode&’ dialogue_tree.h:17:8: note: candidate: DialogueNode::DialogueNode(DialogueNode&&) dialogue_tree.h:17:8: note: no known conversion for argument 1 from ‘std::__cxx11::string {aka std::__cxx11::basic_string<char>}’ to ‘DialogueNode&&’
string
を引数として指定したコンストラクタがあるため、私には意味がありません。しかしとして定義し
DialogueNode(const string);
:として
「dialogue_nodes」とは無関係かもしれませんが、あなたは_relevant_コードを表示していないように見える – P0W
@ P0Wそれは 'DialogueTree'クラスの' DialogueNode'ポインタのベクトルです。私はそのスニッパーコードも添付します – quantik
不完全なコードでできることを最高にする、[再現できません] (https://wandbox.org/permlink/QnxPYc3STZWa9XSx)。 – chris