C++常对象精讲_const关键字的用法

const关键字:

用const修饰的定义对象称为常对象;

用const修饰的声明成员函数称为常成员函数;

用const修饰的声明数据成员称为常数据成员。

变量或对象被 const修饰后其值不能被更新。因此被const修饰的变量或对象必须要进行初始化。

常对象说明:常对象是指对象的数据成员的值在对象被调用时不能被改变。常对象必须进行初始化,且不能被更新。不能通过常对象调用普通成员函数,但是可以通过普通对象调用常成员函数。常对象只能调用常成员函数。常对象的声明如下:

const       <类名>   <对象名>
<类名>   const       <对象名>

两种声明完全一样没有任何区别。

1、通过下面例子来理解常对象:
A、请指出下面程序的错误


代码如下:

class A{
private:
     int w,h;
public:
     int getArea() const
     {  
         return w*h;
     }
     int getW(){ return w;}

void setWH(int x,int y) {w=x,h=y;}
     A(int x,int y){w=x,h=y;}
     A(){;}//本例中不能省略
};

void main()
{  
     A a;//非常对象可以不初始化
     a.setWH(3,9);
     A const b;    //常对象必须声明的同时初始化,正确的是 A const b(3,6)。
     b.setWH(3,7); // 假如上面改正后用这一句,还是错误应为b是常对象不能调用非常成员函数,切其值调用时不能改变,setWH()
     cout<< a.getArea()<<endl<< b.getArea()<<c.getArea();
     system("pause");

(0)

相关推荐

  • 详解C++中const_cast与reinterpret_cast运算符的用法

    const_cast 运算符 从类中移除 const.volatile 和 __unaligned 特性. 语法 const_cast < type-id > ( expression ) 备注 指向任何对象类型的指针或指向数据成员的指针可显式转换为完全相同的类型(const.volatile 和 __unaligned 限定符除外).对于指针和引用,结果将引用原始对象.对于指向数据成员的指针,结果将引用与指向数据成员的原始(未强制转换)的指针相同的成员.根据引用对象的类型,通过生成的指针.引

  • C++中const的用法详细总结

    1. const修饰普通变量和指针 const修饰变量,一般有两种写法: const TYPE value;TYPE const value; 这两种写法在本质上是一样的.它的含义是:const修饰的类型为TYPE的变量value是不可变的. 对于一个非指针的类型TYPE,无论怎么写,都是一个含义,即value只不可变. 例如: const int nValue: //nValue是constint const nValue: // nValue是const 但是对于指针类型的TYPE,不同的写

  • C++类中的static和const用法实例教程

    static和const是C++程序设计中非常重要的概念,本文实例列举了C++类中的static和const的规则和用法.供大家参考借鉴.具体说明如下: 首先以代码用来举例说明.示例代码如下: class A { public: A():m(10) //const成员必须在构造函数的初始化构造列表中初始化 { q = 40; } void fun1()const { m++; //错误.const成员是常量,不能改变其值. n++; //正确.static变量n属于类,但是每个对象的函数都可以访

  • C++中const用法小结

    const在C++中使用十分广泛,不同位置使用的意义也不尽相同,所以想写篇文章对其做一个总结. 首先,明确const是"不变"这个基本意义,但是不变不意味着什么都不变,下面将会看到. 1. const与变量 基本原则:const变量(对象)不能被修改 const在变量中的引入和魔数有关,所谓"魔数"指的是突然出现的一个常量值(也叫字面值常量). for(int i = 0; i < 512; i++) { // todo } 上例中,512即为魔数,512突然

  • C/C++中CONST用法总结(推荐)

    1.修饰常量时: const int temp1; //temp1为常量,不可变 int const temp2; //temp2为常量,不可变 2.修饰指针时: 主要看const在*的前后,在前则指针指向的内容为常量,在后则指针本身为常量: const int *ptr; //*ptr为常量: int const *ptr; //*ptr为常量: int* const ptr; //ptr为常量: const int * const ptr; //*ptr.ptr均为常量: 3.const修饰

  • C++编程中的const关键字常见用法总结

    1.定义常量 (1)const修饰变量,以下两种定义形式在本质上是一样的.它的含义是:const修饰的类型为TYPE的变量value是不可变的. TYPE const ValueName = value; const TYPE ValueName = value; (2)将const改为外部连接,作用于扩大至全局,编译时会分配内存,并且可以不进行初始化,仅仅作为声明,编译器认为在程序其他地方进行了定义. extend const int ValueName = value; 2.指针使用CONS

  • C++常对象精讲_const关键字的用法

    const关键字: 用const修饰的定义对象称为常对象: 用const修饰的声明成员函数称为常成员函数: 用const修饰的声明数据成员称为常数据成员. 变量或对象被 const修饰后其值不能被更新.因此被const修饰的变量或对象必须要进行初始化. 常对象说明:常对象是指对象的数据成员的值在对象被调用时不能被改变.常对象必须进行初始化,且不能被更新.不能通过常对象调用普通成员函数,但是可以通过普通对象调用常成员函数.常对象只能调用常成员函数.常对象的声明如下: const       <类名

  • C语言实例梳理讲解常用关键字的用法

    目录 一.C语言关键字详解 1. sizeof 2. const 3. static 4. extern 5. volatile 6. typedef 7. enum 8. continue 9. break 一.C语言关键字详解 1. sizeof sizeof相信大家并不陌生,其作用就是计算变量所占用的内存空间大小.sizeof的用法看着和函数很相似,但sizeof的真实身份确是:sizeof既是关键字,也是运算符,但不是函数! 这点需要大家牢记.还有非常重要的一点就是 sizeof中的表示

  • 详解C/C++中const关键字的用法及其与宏常量的比较

    1.const关键字的性质 简单来说:const关键字修饰的变量具有常属性. 即它所修饰的变量不能被修改. 2.修饰局部变量 const int a = 10; int const b = 20; 这两种写法是等价的,都是表示变量的值不能被改变,需要注意的是,用const修饰变量时,一定要给变量初始化,否则之后就不能再进行赋值了,而且编译器也不允许不赋初值的写法: 在C++中不赋初值的表达一写出来,编译器即报错,且编译不通过. 在C中不赋初值的表达写出来时不报错,编译时只有警告,编译可以通过.而

  • C/C++ 中const关键字的用法小结

    C++中的const关键字的用法非常灵活,而使用const将大大改善程序的健壮性. Const作用 NO. 作用 说明 参考 1 可以定义const常量 const int Max = 100; 2 便于进行类型检查 const常量有数据类型,而宏常量没有数据类型.编译器可以对前者进行类型安全检查,而对后者只进行字符替换,没有类型安全检查,并且在字符替换时可能会产生意料不到的错误 void f(const int i) { ---} //对传入的参数进行类型检查,不匹配进行提示 3 可以保护被修

  • C语言const关键字的用法详解

    目录 1 介绍 1.1 const修饰变量 1.2 const修饰数组 1.3 const修饰指针 1.4 const修饰函数参数 2 const对程序的影响 3 总结 1 介绍 const关键字是constant的缩写,翻译为常量.常数.在C语言中const的作用很强大,它可以修饰变量.数组.指针.函数参数等. 1.1 const修饰变量 const修饰变量,表示希望此变量具有只读性,防止被直接直接修改. //const关键字是constant的缩写,翻译为常量.常数. //在C语言中cons

  • 概述C++中的 public protected private friend关键字的用法

    一个C++类中的变量如果如下关键字作为修饰符. 1. public: 程序的任何地方都可以访问. 2 protected: 只有类本身及其派生类和其友元函数,友元类可以访问. 3 private: 只有类本身及其友元函数,友元类可以访问. 4 friend: 用于定义友元函数友元类. 在类里声明的一个普通函数,在前面加上friend修饰符,这个函数就可以访问该类的一切成员,包括private成员. 下面在看下c++ public private protected关键字 1.当在类的内部使用这三

  • java synchronized关键字的用法

    0.先导的问题代码 下面的代码演示了一个计数器,两个线程同时对i进行累加的操作,各执行1000000次.我们期望的结果肯定是i=2000000.但是我们多次执行以后,会发现i的值永远小于2000000.这是因为,两个线程同时对i进行写入的时候,其中一个线程的结果会覆盖另外一个. public class AccountingSync implements Runnable { static int i = 0; public void increase() { i++; } @Override

  • Android源码中final关键字的用法及final,finally,finalize的区别

    hi 大家好,今日,天气剧变,非常冷,不想出门,于是给大家写了篇文章,关于android final关键字及final,finally,finalize的区别相关知识,具体详情如下所示: 先预告一下,下文中仅涉及java语法的讨论,和Android源码关系不大,请不要有阅读压力. 我发现在Android的源码中很多地方对final关键字的用法很是"别出心裁",之所以这么说是因为我从没看过是这么使用final关键字的,一个典型的例子是View类中onScrollChanged方法(不妨将

  • 详谈PHP中public,private,protected,abstract等关键字的用法

    PHP中常用的关键字 在PHP中包含了很多对函数和类进行限制的关键字,常用的通常有abstract,final,interface,public,protected,private,static等等,下面我们就将对这些进行分析整理各个的用法. 变量与方法的关键字public,private,protected public的权限最大,既可以让子类使用,也可以支持实例化之后的调用, protected表示的是受保护的,访问的权限是只有在子类和本类中才可以被访问到 private 表示的是私有,只能

  • python global关键字的用法详解

    最近刚好有朋友遇到个global相关的问题,这里简单学习一下global关键字的用法. 想要更好的了解global关键字,首先要熟悉python的全局变量与局部变量的概念.global关键字的作用是可以申明一个局部变量为全局变量,下面看一下实例 一.变量作用域的说明 这里简单提一下变量作用域的概念,有兴趣的小伙伴,可以查一下相关的博客 1.局部变量 def a(): ## 菊部变量 - ,- local = 1 print(local) ## 全局无法使用,只有自己可用 print(lobal)

随机推荐