为了账号安全,请及时绑定邮箱和手机立即绑定

为什么输出的结果是错误的

为什么输出的结果是错误的

C++
不凡的蚂蚁 2017-01-31 10:24:43
#include <iostream>using namespace std;int month;//全局变量  int day;  int year;void Set(int m,int d,int y)// -----------------------------------------------------a{       ::month=m; //-----------------------------------------------------①       ::day=d;        ::year=y;}class CDate{public:        void Set(int m,int d,int y)// -----------------------------------------------------b        {              ::Set(m,d,y); //-----------------------------------------------------②       }       void Print()       {               cout<<month<<"/"<<day<<"/"<<year<<endl;       }private:        int month; //成员变量       int day;        int year;}; void main(){       CDate  a;    a.Set(10,15,2007) ;       a.Print();}
查看完整描述

1 回答

?
艾尔森

TA贡献33条经验 获得超27个赞

print方法里输出的是类的私有成员变量 而set方法里修改的是全局变量

查看完整回答
反对 回复 2017-01-31
  • 不凡的蚂蚁
    不凡的蚂蚁
    请问除了将私有变量删除外还有什么解决方法?
  • 艾尔森
    艾尔森
    可以不用删掉 直接把print方法里cout的部分改成cout<<::month<<"/"<<::day<<"/"<<::year<<endl;就好了,不过这样也就造成了你私有成员变量定义之后却没有使用的问题,倒是不影响程序
  • 1 回答
  • 0 关注
  • 1197 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信