我吮吸c ++所以我怀疑这是我犯过的一个愚蠢的错误。经过一些研究后,我发现当程序试图访问无效的内存块时会发生STATUS_ACCESS_VIOLATION。这就是说我没有看到导致这种情况发生在下面的代码中的原因。
int main() {
cout << "!!!Hello World!!!" << endl;
Node* testNode = new Node("jhon","doe", 1, 80);
BraidedLinkedList* testList = new BraidedLinkedList();
testList->AddNode(testNode);
return 0;}
BraidedLinkedList.cpp
void BraidedLinkedList::AddNode(Node *newNode) {
if (this->start == NULL) {
this->start = newNode;
cout<<newNode->getInfo();
//the following line does not work either
//cout<<this->start->getInfo()<<endl;
}
Node.cpp
const string& Node::getInfo() {
string returnString = "";
returnString += this->getFristName() + " ";
returnString += this->getLastName() + " ";
returnString += this->getId() + " ";
returnString += this->getGrade() + " ";
}
答案 0 :(得分:1)
你的'Node :: getInfo'方法正在返回一个临时字符串对象的const引用。在尝试打印字符串时,它很可能会崩溃。我假设你只是遗漏了回报。在这种情况下,返回类型应该只是'string'。