const 学习笔记

#include<stdlib.h>
#include<iostream>

using namespace std;

int main(){
    // const 仅仅起到是否为常数的修饰
    // 普通变量
    int a=1;
    const int b=a;  // b定了,不能再赋值
    a=2;
    cout << b <<endl;

    // 指针时
    int *p=&a;
    const int *p1=p; // *p1定了,不能再给*p1赋值,但是p1可变,如p1=&c,a也可变
  // 注意不能将p1赋值给新的指针变量 cout << *p1 <<endl; int * const p2=&a; // 注意此时const的顺序,此时p2不能变了 a=2323; cout << *p2 <<endl; // 引用时 int c=123; const int &y=c ; // y定了,所以y不能变了,但是c可变,y的值跟着变,也就是说:外界是改变不了y的,它只随着原配(c)的变化而变化。
// 若函数的形参是:const int &a,表示我只把a的值告诉你这个函数,但是你这个函数不可以修改我的a值,只有原配可以改动
cout << y <<endl; c=2222; cout << y <<endl; system("pause"); return 0; }

定义常成员函数:

void Tool::nice() const{........}     //  const直接写在函数名后面

定义常指针:

const Tool *p = new Tool(23);

定义常对象:

const Tool p ;

定义常引用:

Tool a;
const Tool &b = a;

注意:

1.如果类的成员变量被const修饰,则只能通过初始化列表的方法来对被修饰的变量重新赋值

2.常对象或常引用或常指针只能调用常成员函数。但是普通对象(无const修饰)都能调用, 即:既能调用常成员函数,也能调用非常的。

 

posted @ 2018-04-12 18:55  Jary霸  阅读(113)  评论(0编辑  收藏  举报