对于const类对象,类指针, 类引用, 只能调用类的const成员函数.

1.const成员函数不允许被修改它所在对象的任何一个成员变量.

2.const成员函数能访问对象的const成员, 而其他成员函数不可以.

#include <iostream>
using namespace std; class CTest
{
private:
int m_iX;
int m_iY;
public:
CTest(int x = , int y = )
{
m_iX = x;
m_iY= y;
}
~CTest()
{
m_iY = ;
}
void SetX(int x)
{
m_iX = x;
}
void SetY(int y)
{
m_iY = y;
}
void print() const //只有const成员函数可以访问const对象的const数据成员.
{
cout<<"m_iX = "<<m_iX<<endl;
cout <<"m_iY = "<<m_iY<<endl<<endl;
}
}; int main()
{
CTest t1(, );
cout<<"t1打印: "<<endl;
t1.print(); t1.SetX();
t1.SetY();
cout<<"t1修好值后打印:"<<endl;
t1.print(); const CTest t2(, ); //const对象的任何成员都不能被修改
const CTest *p = new CTest(, ); cout<<"打印t2:"<<endl;
t2.print(); // t2.SetX(77); //const对象不能调用非const函数.
// t2.SetY(88);
cout<<"打印指针对象:"<<endl;
p->print(); t2.~CTest();
cout<<"t2调用析构函数后:"<<endl;
t2.print(); return ;
}

关于C++的const对象的更多相关文章

  1. 不可或缺 Windows Native (18) - C++: this 指针, 对象数组, 对象和指针, const 对象, const 指针和指向 const 对象的指针, const 对象的引用

    [源码下载] 不可或缺 Windows Native (18) - C++: this 指针, 对象数组, 对象和指针, const 对象,  const 指针和指向 const 对象的指针, con ...

  2. const对象

    const对象不能引用类的非const成员函数

  3. c++中的const参数,const变量,const指针,const对象,以及const成员函数

    const 是constant 的缩写,“恒定不变”的意思.被const 修饰的东西都受到强制保护,可以预防意外的变动,能提高程序的健壮性.所以很多C++程序设计书籍建议:“Use const whe ...

  4. c++ , const对象中的变量不能被修改

    const对象中的变量不能被修改,即使const对象中的函数也不能修改该对象中的变量值 #include <iostream> using namespace std; //------- ...

  5. const对象默认是static的,而不是extern的

    const 和 static 变量,可以放在头文件中 const对象默认是static的,而不是extern的,所以即使放在头文件中声明和定义.多个cpp引用同一个头文件,互相也没有感知,所以不会导致 ...

  6. (1)ES6中let,const,对象冻结,跨模块常量,新增的全局对象介绍

    1.let声明变量,var声明变量,而const声明的常量 2.let与var的区别 let可以让变量长期驻扎在内存当作 let的作用域是分块[ {快1  {快2 }  }每个大括号表示一个独立的块 ...

  7. 12.C++-构造函数与析构函数调用顺序,const成员函数,const对象

    单个对象创建时,构造函数的调用顺序 1.首先判断该对象的类是否拥有父类,若有则先调用父类的构造函数 2.判断该对象的成员是否是其它类的成员,若是则调用成员变量的构造函数(调用顺序和声明顺序相同) 3. ...

  8. const对象,指向const对象的指针 和 const 指针

    const对象: const对象声明时必须赋初值,该值在编译阶段确定,不可在程序中修改. const修饰符既可放在类型名前也可放在类型名后,通常放在类型名前.不过放在类型名后易于理解. const i ...

  9. 类的const成员函数,是如何改变const对象的?

    我们知道类里面的const的成员函数一般是不允许改变类对象的,但是我们知道const 类型的指针是可以强制类型转出成非const指针的,同样的道理,this指针也可以被强制类型转换 class Y{ ...

随机推荐

  1. redis sentinel 集群监控 配置

    环境: ip  172.16.1.31 26379  redis sentinel ip  172.16.1.30 6379   主 1 ip  172.16.1.31 6380   从 1 ip   ...

  2. 在win10环境下安装eclipse mars版本

    1下载eclipse软件.下载地址:http://www.eclipse.org/downloads/ 不要下载.exe文件.直接下载安装包,下载对应的安装包,我下载的是这个Eclipse IDE f ...

  3. [转载]七天学会NodeJS

    链接:http://nqdeng.github.io/7-days-nodejs/ NodeJS基础 什么是NodeJS JS是脚本语言,脚本语言都需要一个解析器才能运行.对于写在HTML页面里的JS ...

  4. memcached 第二篇----安装使用

    摘要:set add replace get delete gets cas stats 和 flush_all 命令 获取所有key  .你可以使用MemCachedClient的statsItem ...

  5. linux 更换yum源

    1.进入存放源配置的文件夹 cd /etc/yum.repos.d 2.备份默认源 mv ./CentOS-Base.repo ./CentOS-Base.repo.bak 3.使用wget下载163 ...

  6. java 测试IP

    public static long calSpeed(String ip) { Runtime runtime = Runtime.getRuntime(); // 获取当前程序的运行进对象 Pro ...

  7. MySQL——数据类型

    MySQL中定义数据字段的类型对你数据库的优化是非常重要的.MySQL支持多种类型,大致可以分为三类:数值.日期/时间和字符串(字符)类型. 一.字符串类型: 字符串类型指CHAR.VARCHAR.B ...

  8. 在vhd中安装win7,并建立分差vhd

    准备:硬盘分区激活第一个分区; imagex.exe; install.wim; winpe boot pc 1.cmd命令下,创建主vhd      (1)diskpart       (打开dis ...

  9. ssh框架整合log4j

    这个是摘录的别人博客的地址,请点击下面的链接...... http://www.cnblogs.com/rushoooooo/archive/2011/08/29/2157361.html

  10. NodeMCU之旅(三):响应配置按钮

    引言 在之前的代码中,要连接的WIFI信息都已写死在代码里,这显然不能适应我们的需求.所以需要想个办法让用户可以配置这些信息. WIFI工作模式 NodeMCU支持STATION,SOFTAP,STA ...