C++复杂对象之常对象
2015-03-07 22:02
726 查看
这种对象算是复杂对象中简单的一个
常对象是指常类型对象,即对象常量。定义的格式为:
<类名> const <对象名> ( <初始值> )
或 <类名> const <对象名> ( <初始值> )
定义常对象时必须给常对象赋初值,并且该对象不再被更新。
在C++编程中,常使用指向常对象的指针或常对象的引用作为函数的参数。这样做既利用了指针或引用作为函数参数可以提高运行效率的特点,又不会再被调用函数中改变调用函数的参数值,提高系统的安全性。
常指针(指向常对象的指针)作为函数参数的一道例题:
程序分析:在程序中,常对象只能引用常成员函数,因此输出的结果为8.
常引用(常对象的引用)作为函数参数的程序例题:
输出的结果为63.
常对象是指常类型对象,即对象常量。定义的格式为:
<类名> const <对象名> ( <初始值> )
或 <类名> const <对象名> ( <初始值> )
定义常对象时必须给常对象赋初值,并且该对象不再被更新。
在C++编程中,常使用指向常对象的指针或常对象的引用作为函数的参数。这样做既利用了指针或引用作为函数参数可以提高运行效率的特点,又不会再被调用函数中改变调用函数的参数值,提高系统的安全性。
常指针(指向常对象的指针)作为函数参数的一道例题:
<span style="font-size:18px;">#include <iostream> using namespace std; class M { public: M(int i)//定义的单参数的构造函数 { m=i; } int returnm() const//定义的常成员函数 { return m; } private: int m; }; int fun(const M *m1,const M *m2);//参数为常指针的函数的说明 int main() { M m3(77),m4(9); int k=fun(&m3,&m4);//实参为对象的地址值 cout<<k<<endl; return 0; } int fun(const M *m1,const M *m2)//定义的函数体 { int mul=m1->returnm()/m2->returnm();//通过常对象引用类中的常成员函数 return mul; }</span>
程序分析:在程序中,常对象只能引用常成员函数,因此输出的结果为8.
常引用(常对象的引用)作为函数参数的程序例题:
<span style="font-size:18px;">#include <iostream> using namespace std; class M { public: M(int i)//定义的单参数的构造函数 { m=i; } int returnm() const//定义的常成员函数 { return m; } private: int m; }; int fun(const M &m1,const M &m2);//参数为常引用的函数的说明 int main() { M m3(7),m4(9); int k=fun(m3,m4);//实参为对象名 cout<<k<<endl; return 0; } int fun(const M &m1,const M &m2)//定义的函数体 { int mul=m1.returnm()*m2.returnm();//通过常对象引用类中的常成员函数 return mul; }</span>
输出的结果为63.
相关文章推荐
- C++对象的JSON序列化与反序列化探索续-复杂对象的序列化与反序列化
- C++复杂对象之堆对象
- C++对象的JSON序列化与反序列化探索续-复杂对象的序列化与反序列化
- c++内存池的实现(可以new复杂对象)
- C++复杂对象之子对象
- C++对象的JSON序列化与反序列化探索续-复杂对象的序列化与反序列化
- C++对象模型之函数成员(2)
- C++对象模型之数据成员模型(1)
- C++对象模型之函数成员(3)
- C++中建立对象间消息连接的一种系统方法
- Delphi与C++之间通过实现函数与对象共享
- C++对象模型之一 关于对象笔记
- 在Delphi与C++之间实现函数与对象共享
- C++对象模型之简单对象模型(1)
- C++对象模型之函数成员(4)
- Object Pascal与C++面向对象特征的对比
- C++面向对象特性实现机制的初步分析 Part1
- (c++的对话)Solmyr 的小品文系列之三:对象计数(上)
- C++对象模型之数据成员模型(2)
- c++入门学习笔记--类和对象