• 6_1const对象运用的错误


    /*
    * 程序的版权和版本声明部分
    * Copyright (c)2012, 烟台大学计算机学院学生
    * All rightsreserved.
    * 文件名称: object.cpp
    * 作者:纪子龙
    * 完成日期: 2013年4 月 4 日
    * 版本号: v1.0
    * 输入描述:无
    * 问题描述:无
    * 程序输出:无
    */
    #include<iostream>
    #include<stdlib.h>
    using namespace std;
    class C
    {
    private:
    	int x;
    public:
    	 C(int x){this->x = x;}
    	int getX() {return x;}
    };
    int main()
    {
    	const C c(5);
    	cout<<c.getX();
    	return 0;
    }
    //错误:非const对象的数据成员只能由从const成员函数引用不能改变非const成员函数既不可引用有不可改变;
    具体修改方案:
    1.
    #include<iostream>
    #include<stdlib.h>
    using namespace std;
    class C
    {
    private:
    	int x;
    public:
    	 C(int x){this->x = x;}
    	int getX() {return x;}
    };
    int main()
    {
    	C c(5);//将c定义为非const对象
    	cout<<c.getX();
    	return 0;
    }
    2.
    #include<iostream>
    #include<stdlib.h>
    using namespace std;
    class C
    {
    private:
    	int x;
    public:
    	 C(int x){this->x = x;}
    	int getX()  const{return x;}//将getX定义为const成员函数
    };
    int main()
    {
    	const C c(5);
    	cout<<c.getX();
    	return 0;
    }
    总结:
      本人更偏向于第二种方式保证了对象数据成员的封闭性


  • 相关阅读:
    安装ArcGIS Server forJava
    MyEclipse编码设置
    地图切片公式备忘
    source
    逝去的痕迹
    flex build下的svn安装
    spket安装
    flex开发一
    vs2008中的SQL Server Express访问 sql server 2005
    导入不同格式的数据到arcgis中
  • 原文地址:https://www.cnblogs.com/jiangu66/p/3000339.html
Copyright © 2020-2023  润新知