gpt4 book ai didi

c++ - cpp程序在访问类成员的成员变量时挂起

转载 作者:行者123 更新时间:2023-11-30 03:22:27 24 4
gpt4 key购买 nike

使用 Teensy 3.2,我的程序卡在下面指出的部分。我不知道如何访问 glyph。如果我注释掉 //hangs here 行,我可以看到所有行打印到我的 Arduino 串行监视器。

#include <vector>
#include <Arduino.h>

class Letter {
public:
String glyph = "a";
};

class Language {
public:
Language();
std::vector <Letter> alphabet;
};

Language::Language(){
std::vector <Letter> alphabet;
Letter symbol = Letter();
alphabet.push_back(symbol);
delay(2000);
Serial.println("hello world");//prints in the arduino monitor
Serial.println(this->alphabet[0].glyph);//hangs here
Serial.println("line of interest executed");//runs only if line above is commented out
}

void setup() {
Serial.begin(9600);
Language english = Language();
}

void loop() {

}

最佳答案

您正在定义一个局部变量 alphabet 并将 push_back 一个元素放入其中。这与成员变量alphabet无关。然后this->alphabet[0].glyph引出UB,成员变量alphabet还是空的。

你可能想要

Language::Language() {

Letter symbol = Letter();
this->alphabet.push_back(symbol);
// or just alphabet.push_back(symbol);

delay(2000);
Serial.println("hello world");//prints in the arduino monitor
Serial.println(this->alphabet[0].glyph);
Serial.println("line of interest executed");
}

关于c++ - cpp程序在访问类成员的成员变量时挂起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51111377/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com