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 

 

 本文转自Work Hard Work Smart博客园博客,原文链接:http://www.cnblogs.com/linlf03/archive/2011/11/17/2252367.html,如需转载请自行联系原作者

目录
相关文章
|
存储 安全 编译器
第二问:C++中const用法详解
`const` 是 C++ 中用于定义常量的关键字,主要作用是防止值被修改。它可以修饰变量、指针、函数参数、返回值、类成员等,确保数据的不可变性。`const` 的常见用法包括:
|
存储 C++ 容器
【C++】map、set基本用法
本文介绍了C++ STL中的`map`和`set`两种关联容器。`map`用于存储键值对,每个键唯一;而`set`存储唯一元素,不包含值。两者均基于红黑树实现,支持高效的查找、插入和删除操作。文中详细列举了它们的构造方法、迭代器、容量检查、元素修改等常用接口,并简要对比了`map`与`set`的主要差异。此外,还介绍了允许重复元素的`multiset`和`multimap`。
383 3
【C++】map、set基本用法
第十三问:C++中静态变量的用法有哪些?
本文介绍了 C++ 中静态变量和函数的用法及原理。静态变量包括函数内的静态局部变量和类中的静态成员变量,前者在函数调用间保持值,后者属于类而非对象。静态函数不能访问非静态成员,但可以通过类名直接调用。静态链接使变量或函数仅在定义文件内可见,避免命名冲突。
|
编译器 C++ 容器
【C++】String常见函数用法
【C++】String常见函数用法
|
C++
C++ string中的函数和常用用法
C++ 中string中的函数和常用用法
333 4
|
存储 C++
C++初阶学习第十一弹——探索STL奥秘(六)——深度刨析list的用法和核心点
C++初阶学习第十一弹——探索STL奥秘(六)——深度刨析list的用法和核心点
203 7
|
存储 程序员 编译器
c++学习笔记08 内存分区、new和delete的用法
C++内存管理的学习笔记08,介绍了内存分区的概念,包括代码区、全局区、堆区和栈区,以及如何在堆区使用`new`和`delete`进行内存分配和释放。
204 0
|
存储 人工智能 C++
map容器在C++中的具体用法以及相关注意点
map容器在C++中的具体用法以及相关注意点
404 1
|
编译器 C++
C++中的内联函数与const限定词的使用
C++中的内联函数与const限定词的使用
163 1
|
编译器 C++
【C++】类和对象④(类的默认成员函数:取地址及const取地址重载 )
本文探讨了C++中类的成员函数,特别是取地址及const取地址操作符重载,通常无需重载,但展示了如何自定义以适应特定需求。接着讨论了构造函数的重要性,尤其是使用初始化列表来高效地初始化类的成员,包括对象成员、引用和const成员。初始化列表确保在对象创建时正确赋值,并遵循特定的执行顺序。