• C++ const的用法


    1. 一般常量

      int const x=2; 或 const int x=2;

      当然x也可是一个数组,如x[5];int可以被替换为是类名,x为对象名,此时常对象。

        int如果被替换为char*,此时为常指针 如:char* const x 或 const char* x;常引用的格式为 const <类型说明符> & <引用名> 例如:const double & x;

    2、下面举一例子说明常指针作函数参数的作法。

    #include <iostream>
    using namespace std;
    const int N = 6;
    void print(const int* p, int n);
    
    int _tmain(int argc, _TCHAR* argv[])
    {
    	int arrar[N];
    	for (int i = 0;i <N;i++)
    	{
    		cin>>arrar[i];		
    	}
    	print(arrar,N);
    	return 0;
    }
    
    void print(const int* p, int n)
    {
    	cout<<"{";
    	for (int i= 0; i<N;i++)
    	{
    		cout<<" "<<*(p+i);
    		
    	}
    	cout <<"}";
    
    }
    

    3、常成员函数

      使用const关键字进行说明的成员函数,称为常成员函数。常成员函数说明格式如下:

      <类型说明符> <函数名> (<参数表>) const;

    其中,const是加在函数说明后面的类型修饰符,它是函数类型的一个组成部分,因此,在函数实现部分也要带const关键字。常成员函数的特征。

    ConstTest.h文件

    class R
    {
    public:
    	R(int r1, int r2) { R1=r1; R2=r2; }
    	void print();
    	void print() const;
    private:
    	int R1, R2;
    };
    

     ConstTest.Cpp文件 

    void R::print()
    {
    	cout << "R1:" <<R1 << " R2:" <<R2<<endl;
    }
    
    void R::print() const
    {
    	cout << "R1:" <<R1 << " R2:" <<R2<<endl;
    }
    

     实现:

    int _tmain(int argc, _TCHAR* argv[])
    {
    
    	R a(5, 4);
    	a.print();
    	const R b(20, 52);
    	b.print();
    	return 0;
    }
    

      

     

    4、常变量

    头文件 ConstTest.h

    class A
    {
    //r是常int型引用,a是常int型变量,b是静态常int型变量。
    public:
    	A(int i);
    	void print();
    	const int &r;
    private:
    	const int a;
    	static const int b;
    };
    

     cpp文件ConstTest.cpp

    void A::print()
    {
    	cout<<" const int &r "<< r <<endl <<"Const int a " <<a<<endl << "static const int b " << b <<endl;
    }
    const int A::b=10;
    A::A(int i):a(i), r(a)
    {
    }
    

     实现:

    int _tmain(int argc, _TCHAR* argv[])
    {
    
    	A a1(100),a2(0);
    	a1.print();
    	a2.print();
    
    	return 0;
    }
    

     参考:http://www.cppblog.com/mzty/archive/2005/11/09/1001.html 

     

     

  • 相关阅读:
    SSM框架——详细整合教程(Spring+SpringMVC+MyBatis)
    mybatis自定义枚举转换类
    javaweb分布式事务
    javaweb的负载均衡,tomcat集群和session共享
    分布式并发锁处理
    FindBugs规则整理
    SpringMVC中文乱码,字符过滤器配置
    mybatis快速入门
    黑盒测试常用的测试方法
    问题及解决方案小技巧
  • 原文地址:https://www.cnblogs.com/linlf03/p/2252367.html
Copyright © 2020-2023  润新知