你的name定义不是类成员,只是一个方法的局部变量,没有输出错误已经是编译器优化了。你应该在私有变量定义那里加上name
你读入的是函数input中的临时变量char name[20],而不是类成员变量string name。去掉char name[20]这行定义。