精华内容
下载资源
问答
  • const:定义成员,包括const数据成员和const成员函数,const数据成员必须,也只能通过构造函数的初始化列表进行初始化,const成员函数只能访问类的成员,不能进行修改,如果需要修改,则引入下面的mutable关键字。...
  • const关键字的作用?

    2021-02-01 13:44:45
    (1)欲阻止一个变量被改变,可以使用const关键字。...(4)对于类的成员函数,若指定其为const类型,则表明其一个函数,不能修改类的成员变量; (5)对于类的成员函数,有时候必须指定其返回值为const类型,以

    const关键字的作用如下六条

    (1)欲阻止一个变量被改变,可以使用const关键字。在定义该const变量时,通常需要对它进行初始化,因为以后就没有机会再去改变它了;
    (2)对指针来说,可以指定指针本身为const,也可以指定指针所指的数据为const,或二者同时指定为const;
    (3)在一个函数声明中,const可以修饰形参,表明它是一个输入参数,在函数内部不能改变其值;
    (4)对于类的成员函数,若指定其为const类型,则表明其是一个常函数,不能修改类的成员变量;
    (5)对于类的成员函数,有时候必须指定其返回值为const类型,以使得其返回值不为“左值”。

    展开全文
  • const关键字的作用

    2019-09-26 14:52:42
    (2)修饰类的成员函数时,表示其为一个函数,意味着成员函数将不能修改类成员变量的值。 (3)在函数声明时修饰参数,表示在函数访问时参数(包括指针和实参)的值不会发生变化。 (4)对于指针而言,可以指定...

    (1)防止被修饰的成员的内容被改变。

    (2)修饰类的成员函数时,表示其为一个常函数,意味着成员函数将不能修改类成员变量的值。

    (3)在函数声明时修饰参数,表示在函数访问时参数(包括指针和实参)的值不会发生变化。

    (4)对于指针而言,可以指定指针本身为const,也可以指定指针所指的数据为const,const int *b = &a或者int* const b = &a修饰的都是后面的值,分别代表*bb不能改变 。

    (5)const 可以替代c语言中的#define 宏定义,好处是在log中可以打印出BUFFER_SIZE的值,而宏定义的则是不能

      #define  BUFFER_SIZE  512
      const int BUFFER_SIZE   = 512;
    

    注意:const数据成员必须使用成员初始化列表进行初始化。

    展开全文
  • 对象成员

    千次阅读 2013-04-24 16:46:42
    常对象成员包括常成员函数和常数据成员。 1. 常成员函数 使用const关键字声明的函数为常成员函数,常成员函数声明格式如下: 类型 函数名(参数表) const ; 对于常对象成员需要注意以下几点: (1...

    常对象成员包括常成员函数和常数据成员。

    1.  常成员函数

    使用const关键字声明的函数为常成员函数,常成员函数声明格式如下:

    类型  函数名(参数表)  const ;

    对于常对象成员需要注意以下几点:

    (1)    const是函数类型的一个组成部分,因此在实现部分也要带const关键词。

    (2)    常成员函数不更新对象的数据成员,也不能调用该类中没有用const修饰的成员函数

    (3)    如果将一个对象声明为常对象,则通过该常对象只能调用它的常成员函数,而不能调用其他成员函数。

    (4)    const关键字可以参与区分重载函数。例如,如果在类中有如下声明,则这是对print的有效重载。

    void print() ;

    void print()  const ;

    例:如下代码

    #include <iostream>
    using namespace std ;
    class Sample
    {
    	int n ;
    public :
    	Sample(int i) { n = i ;}
    	void print() {cout << "1: n = " << n << endl ;}
    	void print() const {cout << "2: n = " << n << endl ;}
    } ;
    void main()
    {
    	Sample a(10) ;
    	const Sample b(20) ;
    	a.print() ;
    	b.print() ;
    }
    

    输出如下:


    2.  常数据成员

    就像一般数据一样,类的成员数据也可以是常量和常引用,使用const声明的数据成员为常数据成员。如果在一个类中声明了n个常数据成员,那么构造函数就只能通过初始化列表对该数据成员进行初始化,其一般格式如下:

          构造函数(参数表):常数据成员1(参数1),常数据成员2(参数2),···,常数据成员n(参数n)

    其中,冒号后面是一个数据成员初始化列表,它包含一个初始化项,当有多个初始化项时,要用逗号分隔开。“参数1”~“参数n”均为“参数表”中的某个参数。这样,在执行构造函数时自动将“常数据成员1”赋值为“参数1”的值,“常数据成员2”赋值为“参数2”的值,“常数据成员n”赋值为“参数n”的值等。

    例:如下代码

    #include <iostream>
    using namespace std ;
    class Sample
    {
    	const int n, m ;
    public :
    	Sample(int i, int j) : n(i), m(j) {} 
    	void print() {cout << "n = " << n << ", m = " << m << endl ;}
    } ;
    void main()
    {
    	Sample a(10, 20) ;
    	a.print() ;
    }
    

    输出如下:




    展开全文
  • C++中C++关键字浅析

    2015-04-15 22:24:21
    在C++语言中,然后就总结了许多C++关键字,如果不使用引用、指针,则须用const_cast 1. 修饰常量 ...最基本的用法,用const修饰一个变量...注意要在声明时初始化,如果是类的数据成员,则在构造函数的初始化列表

    原文地址:http://developer.51cto.com/art/201001/180485.htm

    在C++语言中,然后就总结了许多C++关键字,如果不使用常引用、指针,则须用const_cast<>进行转,指向字符char的常指针经常用来表示字符串,像windows中的LPCSTR就是const char *。

    1. 修饰常量

    最基本的用法,用const修饰一个变量,表示这是一个常量,这种用法可以代替C语言里面的宏定义。注意要在声明时初始化,如果是类的数据成员,则在构造函数的初始化列表中初始化。

    1. const int a=999;    //定义了常量a,代替宏定义  
    2. //const int b;        //错误,常量定义时要初始化  
    3. extern const int c;    //外部定义的常量不用初始化了  
    4. int const d=0;        //与const int等价,写法习惯不同而已  
    5. const long e=0;        //同理,把int换成char、long、类是一样的  
    6.  
    7. class Cls  
    8. {  
    9. public:  
    10.     Cls(int a,int b):_a(a)    //常数成员要在初始化列表初始化  
    11.     {  
    12.         _b=b;  
    13.     }  
    14. private:  
    15.     const int _a;  
    16.     int _b;  
    17. }; 

    2. 修饰引用,指针

    对一个C++关键字的引用或指针要用常指针,也就是不能修改所引用、指向的变量。如果不使用常引用、指针,则须用const_cast<>进行转换。指向字符char的常指针经常用来表示字符串,像windows中的LPCSTR就是const char *。

    1. const int &g=a;            //a的内容不能改,所以g(a的引用)也是const  
    2. //int &h=a;            //错误  
    3. int &i=const_cast<int&>(a);    //使用const_cast<>()把常量转成非常量  
    4. int const &j=a;            //与const int &等价,写法习惯不同而已  
    5.  
    6. const int *k=&a;        //a的内容不能改,所以k(a的指针)也是const  
    7. int const *l=&a;        //与const int *等价,写法习惯不同而已  
    8. //int *m=&a;            //错误  
    9. const char *n="string";        //字符串“string”内部字符不能改变了  
    10. char *o="string2";        //字符串“string2”可以修改 

    3. 修饰对象

    如果修饰的是一个对象,则表示该对象的数据成员均为常量,并且只能调用该对象的常成员函数,这一点在后面解释。综合1、2、3条得出,const修饰符表示所修饰的内存区域被上了锁,不能修改。

    对一个对象的常引用经常用来函数传参,当函数参数为对象是,直接按值传参会调用对象拷贝构造函数,复制对象,对程序效率造成影响,所以一般按引用传参,为了不改变传入的参数,要加const表示是常引用。

    1. const int &g=a;            //a的内容不能改,所以g(a的引用)也是const  
    2. //int &h=a;            //错误  
    3. int &i=const_cast<int&>(a);    //使用const_cast<>()把常量转成非常量  
    4. int const &j=a;            //与const int &等价,写法习惯不同而已  
    5.  
    6. const int *k=&a;        //a的内容不能改,所以k(a的指针)也是const  
    7. int const *l=&a;        //与const int *等价,写法习惯不同而已  
    8. //int *m=&a;            //错误  
    9. const char *n="string";        //字符串“string”内部字符不能改变了  
    10. char *o="string2";        //字符串“string2”可以修改 

    4. 另外一种const修饰指针的方法

    也就是著名的const char *和char * const的区别的问题。const char *前面说过,意思是常指针,char*所指的内存区域不能被修改,用来表示字符串。而char * const的意思指针所指向的位置不能修改,C++关键字也就是该指针不能指向其他内存区域了,这和引用很像,char * const相当于char &,所以常引用const char &相当于const char * const,也就是指针指向谁不可变,指针指向的内容也不可变。注意const是写在了*的前面还是后面,这是唯一区别,char const *的意思和const char *是一样的。

    展开全文
  • 静态成员(关键字:static)解决同一个类的不同对象之间数据和函数共享问题。区分全局变量,全局变量也能实现数据共享,但安全性和封装性被破坏了。 2.静态数据成员 (1)使用关键字static在类内声明,类外定义和...
  • 使用const关键字描述的变量或对象的值是不能够被改变的。const使用得当的代码会更易维护,可靠性更强,我们应该尽可能的使用const,这会使你的程序获益良多,但前提是你必须搞清楚原委。...如果是类的常数据成员,那
  • 常对象成员: 在类声明时,在成员变量前面加上关键字const,即将成员声明为const;例const int a。 可以将其看做通过宏定义的常变量;...只能通过构造函数参数初始化表对常数据成员进行初始化。例Time::Time(int h)...
  • const关键字应用

    2018-05-07 11:15:08
    const关键字应用欲阻止一个变量被改变,可使用const,在定义该const变量时,需先初始化,以后就没有机会改变他了;...对于类的成员函数,有时候必须指定其为const类型,表明其一个函数,不能修改类...
  • C++静态成员常成员

    2018-03-03 11:10:46
    非静态数据成员,每一个对象都拥有一个副本,即每一个对象同名数据成员可以存储不同数值,这保证了每个对象拥有区别于其他对象特征。 而静态成员不管创建了多少个对象,他们之间只有一个副本,也...
  • 常成员函数

    千次阅读 2009-07-23 10:52:00
    1.如果将成员函数声明成员函数,则只能引用本的数据成员,而不能修改它们。例如:void get_time()const;//const位置在函数和括号之后  const函数类型一部分,在声明函数和定义函数时候都要用const...
  • C++常成员函数

    2013-09-10 22:41:16
    使用const关键字进行声明的成员函数被称为成员函数 ...(3)成员函数不能用来更新类的成员变量,因此成员函数中只能调用成员函数。如果调用其他普通函数,可能会引起间接修改数据成员 (4)其他函数可
  • 函数内不能修改类的数据成员属性。 成员属性声明的时候加关键字mutable后,在函数中就可以修改,相当于获得了一个比较高的权限。 对象 声明对象的时候在前面加上const即可变成对象。 对象只能访问函数...
  • 函数 C++成员函数用法 在一个普通成员函数后面加上const修饰,就是成员函数 返回值 函数名(形参表)const {函数体} ...(本类数据成员有“mutable”关键字修饰时可以通过成员函数修改。); ②成员函数...
  • 用在类成员函数的声明和定义中,成员函数使用const关键字说明的函数,表示函数可以对const对象进行操作,但是不能改变数据成员的内容. 为了安全 保护数据不被无意的破坏. 在类的成员函数之后加上 const ...
  • C++提供了很多有效措施增加数据安全性,为了能使...用关键字const来声明常数据成员。 1.2 常成员函数:常成员函数只能引用本数据成员,而不能修改他们。 2.常对象: 常对象只能调用常成员函数,非常...
  • C++ 对象和函数

    2020-12-01 00:56:21
    函数 在成员函数的声明及定义的形参括号后边加上const...在设计类的时候,一个原则就是对于不改变数据成员的成员函数都要在后面加 const,而对于改变数据成员的成员函数不能加 const。所以 const 关键字对成员函
  • PAGE / NUMPAGES c#中结构体和类的比较 区别 结构一种用关键字struct声明的自定义数据类型与类相似也可以包含构造函数数字段方法属性索引器运算符和嵌套类型等不过结构值类型 1.结构的构造函数和类的构造函数...
  • 函数(C++)

    千次阅读 2018-10-25 15:29:28
    举例: bool functionName() const; 解释:声明了一个名为functionName的函数,该...关于C++中,类的常成员函数 声明样式为: 返回类型 &amp;amp;amp;lt;类标识符::&amp;amp;amp;gt;函数名称(参数表) con...
  • 其作用和用法与一般常变量(const变量)相似,但常数据成员的不能改变。 注意:只能通过构造函数参数初始化表对常数据成员进行初始化,不能采用在构造函数中对常数据成员赋初值方法。 例如:  如在...
  • 寒假学习笔记(4)

    2018-02-11 21:30:00
    2018.2.11 类中的常成员 关键字const,在类定义中声明数据成员使用关键字限定,...定义含常数据成员类的对象时需要初始化,给出常数据成员的初始值。 函数声明:double Getcost() const; 常函数成员只能读类中的...
  • C++中const

    万次阅读 2012-06-09 15:08:08
    对象的数据成员值在对象整个生存期间内不能被改变。对象必须进行初始化,而且不能更新。  还可以用const修饰成员,如下:  1.成员函数  使用const关键字修饰函数为成员函数,成员函数声明的...
  • 8.2 类的声明和对象的定义 8.2.1 类和对象的关系 8.2.2 声明类类型 8.2.3 定义对象的方法 8.2.4 类和结构体类型的异同 8.3 类的成员函数 8.3.1 成员函数的性质 8.3.2 在类外定义成员函数 8.3.3 inline成员函数 8.3.4...
  • const作用--学习笔记

    2020-07-13 19:31:14
    1. const关键字的作用 欲阻止一个变量被改变,可使用...对于类的成员函数,有时候必须指定其为const类型,表明其一个函数,不能修改类的成员变量; 对于类的成员函数,有时候必须指定其返回值为const类型,以使
  • 数据结构(C++)有关练习题

    热门讨论 2008-01-02 11:27:18
    2、要求的图如下,也可以自己构造图,但是需要注意的,图不能退化的单链表: 实验报告要求: 1、 按要求记录下图的类的完整实验代码; 2、 纪录你所使用的图; 3、 按要求记录下要求的输出...
  • 类是用户定义的类型,对象(如变量)是类的实例。本章介绍面向对象编程和类设计。对象声明描述的是存 储在对象中的信息以及可对对象执行的操作(类方法)。对象的某些组成部分对于外界来说是可见的(公有部 分),而某些...
  • 类是用户定义的类型,对象(如变量)是类的实例。本章介绍面向对象编程和类设计。对象声明描述的是存 储在对象中的信息以及可对对象执行的操作(类方法)。对象的某些组成部分对于外界来说是可见的(公有部 分),而某些...
  • 类是用户定义的类型,对象(如变量)是类的实例。本章介绍面向对象编程和类设计。对象声明描述的是存 储在对象中的信息以及可对对象执行的操作(类方法)。对象的某些组成部分对于外界来说是可见的(公有部 分),而某些...

空空如也

空空如也

1 2 3
收藏数 45
精华内容 18
关键字:

关键字声明是类的常数据成员