C++中const:常引用,常对象,常对象成员
来源:互联网 发布:ntfs for mac 14破解 编辑:程序博客网 时间:2024/04/29 07:28
C++中const:常引用,常对象,常对象成员
Last Edit 2013/11/24
1、常引用 (类型名 &引用名)
#include <IOSTREAM>using namespace std;class Data{public:int x;public:Data(int a){x=a;}void show(const Data & d); //常对象引用};void Data::show(const Data & d){cout<<d.x<<endl; //d.x++ ; //将报错,如果对x的值进行改变的话}void main(){Data d(3);d.show(d);}2、常对象 (类名 const 对象名 或者 const 类名 对象名)
定义常对象时必须对其进行初始化,并且不能改变其数据成员的值
Data const D(1);//形式1const Data D(1)://形式23、类的常成员函数:常成员函数的声明形式为:类型说明符 函数名(参数表) const;
a.常成员函数在声明和实现时都要带const关键字;
b.常成员函数不能修改对象的数据成员,也不能访问类中没有用const声明的非常成员函数;
c.常对象只能调用它的常成员函数,不能调用其他的普通成员函数;
d.const关键字可以被用于参与对重载函数的区分
下面分别一一说明:
#include <IOSTREAM>using namespace std;class Data{public:int x;public:Data(int a){x=a;}void show(const Data & d);//常引用void show() const; //常函数,只能调用常函数,不能调用非常函数。void print(); //非常函数};void Data::show(const Data & d){cout<<d.x<<endl;print();}void Data::show() const{cout<<x<<endl;//print(); //报错,编译不通过。}void Data::print(){cout<<"hello world"<<endl;}void main(){Data d(3); const Data c(4);d.show(d);//c.show(c) //报错,常对象只能调用常函数 c.show();}4、类的常数据成员
类的数据成员也可以是常量和常引用,用const声明的数据成员就是常数据成员。在任何函数中都不能对常数据成员赋值。构造函数对常数据成员初始化,只能通过初始化列表。
#include<iostream> using namespace std; class A { public: A(int i); void print(); const int& r; private: const int a; static const int b; //静态常数据成员 }; const int A::b=20; A::A(int i):a(i),r(a) {} void A::print() { cout<<a<<":"<<b<<":"<<r<<endl; }
要是不对r进行初始化,则会出现如下错误。
- C++中const:常引用,常对象,常对象成员
- const用法之常对象,常成员函数,常引用
- 常引用,常对象,常成员函数,常数据成员~
- 常成员、常对象
- 常引用、常对象、对象的常成员
- 常对象 常成员函数
- 常对象与常成员
- 常对象+常对象成员+指向对象的常指针+指向常对象的指针变量+对象的常引用
- 7.24常指针 常对象 常引用
- 有关C++中的常对象,常成员函数,常数据成员,常引用的认识
- 常对象、常对象成员、常成员函数
- 常对象和常对象成员
- 常对象 常对象成员 知识点
- C++ 常对象成员、常成员函数
- 常对象成员和常成员函数
- 常对象成员
- 常对象成员
- 常对象成员总结
- ArrayList removeRange方法分析
- Git 忽略文件的模式
- hdu1166 敌兵布阵,线段树
- canvas 合成globalCompositeOperation
- eclipse hadoop开发环境配置
- C++中const:常引用,常对象,常对象成员
- C++ 命名空间namespace
- Sudoku Solver 破解数独 @LeetCode 附DFS感想
- inotifywait监控目录更改
- C++必知必会之(18)函数对象
- IBM敏捷转型前所遇到的最大障碍
- 'WARNING: Subscription for node down event still pending'
- 《精通Node.js》
- oracle常见的sql命令