当不想从外部调用成员函数修改成员变量时,可以将其被调成员函数加上const
每个成员函数都有个隐式 this 指针,指向调用对象
代码
20
21 // CBox 类源文件
22 #include " Box.h "
23
24 // 构造函数
25 CBox::CBox( double lv, double lw, double lh)
26 : m_Length(lv),m_Width(lw),m_Height(lh)
27 {
28 cout << " 构造函数 " << endl;
29 }
30
31 // 计算盒子体积
32 double CBox::Volume( void ) const
33 {
34 return m_Length * m_Width * m_Height;
35 }
36
37 // 比较两个盒子体积大小
38 int CBox::Compare( CBox xBox ) const
39 {
40 return this -> Volume() > xBox.Volume();
41 }
1
//
CBox 类头文件
2 #pragma once
3 #include < iostream >
4 using namespace std;
5
6 class CBox
7 {
8 public :
9 CBox( double lv = 1.0 , double lw = 1.0 , double lh = 1.0 );
10
11 public :
12 double Volume( void ) const ;
13 int Compare( CBox xBox ) const ;
14
15 private :
16 double m_Length;
17 double m_Width;
18 double m_Height;
19 };
2 #pragma once
3 #include < iostream >
4 using namespace std;
5
6 class CBox
7 {
8 public :
9 CBox( double lv = 1.0 , double lw = 1.0 , double lh = 1.0 );
10
11 public :
12 double Volume( void ) const ;
13 int Compare( CBox xBox ) const ;
14
15 private :
16 double m_Length;
17 double m_Width;
18 double m_Height;
19 };
20
21 // CBox 类源文件
22 #include " Box.h "
23
24 // 构造函数
25 CBox::CBox( double lv, double lw, double lh)
26 : m_Length(lv),m_Width(lw),m_Height(lh)
27 {
28 cout << " 构造函数 " << endl;
29 }
30
31 // 计算盒子体积
32 double CBox::Volume( void ) const
33 {
34 return m_Length * m_Width * m_Height;
35 }
36
37 // 比较两个盒子体积大小
38 int CBox::Compare( CBox xBox ) const
39 {
40 return this -> Volume() > xBox.Volume();
41 }
上面的 this->Volume() > xBox.Volume(); 其实就是调用对象与被传过来的 xBox 对象进行比较。
代码
//
main 函数
#include " Box.h "
int main( void )
{
CBox box1( 2.0 , 3.0 , 4.0 );
CBox box2( 1.0 , 2.0 , 3.0 );
cout << " box1.Volume() = " << box1.Volume() << endl;
cout << " box2.Volume() = " << box2.Volume() << endl;
if (box1.Compare(box2))
{
cout << " box1的体积大于box2 " << endl;
}
else
{
cout << " box1的体积小于或等于box2 " << endl;
}
system( " pause " );
return 0 ;
}
#include " Box.h "
int main( void )
{
CBox box1( 2.0 , 3.0 , 4.0 );
CBox box2( 1.0 , 2.0 , 3.0 );
cout << " box1.Volume() = " << box1.Volume() << endl;
cout << " box2.Volume() = " << box2.Volume() << endl;
if (box1.Compare(box2))
{
cout << " box1的体积大于box2 " << endl;
}
else
{
cout << " box1的体积小于或等于box2 " << endl;
}
system( " pause " );
return 0 ;
}