类的C++std::string属性在初始化后显示为空字符串



所以我有一个非常直接的家庭作业,包括创建一个以名称和3个成绩为属性的学生类,以及计算最终成绩并将名称和最终成绩分别附加到2个向量的方法,但是调试器显示该学生类("Alumino"类(的实例实际上具有名称。

,我把下面的代码留给你

class libroDeClases {
public:
vector<string> nombres;
vector<float> notasDef;
};
class Alumno {
private:
string nombre;
float n1, n2, n3;
float notaDef;
public:
Alumno(string nombre, float x, float y, float z) {
nombre = nombre;
n1 = x;
n2 = y;
n3 = z;    }
void calcularNota(libroDeClases L) {
float nd = (n1 + n2 + n3) / 3;
notaDef = nd;
L.notasDef.push_back(nd);
L.nombres.push_back(nombre);
} 
int main() {
libroDeClases Libro;
Alumno a1("Oscar", 4.0, 4.7, 5.5);
a1.calcularNota(Libro);

谢谢你的帮助!

编辑:我添加了"Libro"为了使代码编译,我忘记提供它,对此感到抱歉。

正如用户Taekahn在评论中所说,我使用了This ->,现在它完美地添加了它。

谢谢。

如果通过引用将对象传递给calcularNota,则字符串将成功打印。如果只是传递值,则会生成对象的副本,但不会更改原始对象的值:https://godbolt.org/z/fGzWvzW1b

相关内容

  • 没有找到相关文章

最新更新