大风起兮90+ 发表于 2020-2-22 10:05:27

C++面向对象入门:对象输出的问题

本帖最后由 大风起兮90+ 于 2020-2-22 10:08 编辑

#include<iostream>
#include<string>
class Car
{
public:
        std::string color;
        void set_color();
        void say();
};

void Car::set_color()
{
        std::string col;
        std::cout<<"请输入您想要的汽车的颜色:";
        std::cin>>col;
        color=col;
}
void Car::say()
{
        std::cout<<"这辆车的颜色是"<<color<<std::endl;
}
int main()
{
        std::string mycar_color;
        Car mycar1;
        mycar1.set_color();
        mycar1.say();
        Car mycar2;
        mycar1.set_color();
        mycar2.say();
        return 0;
}

大风起兮90+ 发表于 2020-2-22 10:08:25

请问为什么第二辆车的颜色就打印不出来了呢

大风起兮90+ 发表于 2020-2-22 10:10:16

通过跟踪变量发现第二次改变的还是第一辆车的颜色

major_lyu 发表于 2020-2-22 17:07:52

本帖最后由 major_lyu 于 2020-2-22 17:11 编辑

int main()
{
      std::string mycar_color;
      Car mycar1;
      mycar1.set_color();
      mycar1.say();
      Car mycar2;
      //mycar1.set_color();   //这里调用错了啊,你调用的是对象mycar1的成员函数,所以设置的是mycar1的颜色啊.
      mycar2.set_color();         //改成这样就对了哦
      mycar2.say();
      return 0;
}

大风起兮90+ 发表于 2020-2-23 16:45:10

major_lyu 发表于 2020-2-22 17:07


哎呀,抱歉,草率了草率了,脑袋晕了后面就没有认真检查代码
页: [1]
查看完整版本: C++面向对象入门:对象输出的问题