阿Paul-黄
生命不在乎得到过什么 而在乎做过什么

1.下面分别是类定义文件的原型和方法文件的函数定义:

1 //prototype
2 Stonewt operator *(double mult);
3 
4 //definition - let constructor do the work
5 Stonewt Stonewt::operator *(double mult)
6 {
7     return Stonewt(mult * m_dPound);
8 }

 

2.成员函数是类定义的一部分,通过特定的对象来调用,可直接访问调用对象的成员。友元函数不是类的组成部分,因此被称为直接函数调用,必须将作为参数的对象和成员运算符“.”结合使用,才能访问对象的成员。

3.若要从外部世界(不包括派生类)访问类的私有成员和保护成员,则必须是友元函数才具有访问权限。

4. 下面分别是类定义文件的原型和方法文件的函数定义:

1 //prototype
2 friend Stonewt operator *(double mult, const Stonewt& st);
3 
4 //definition - let constructor do the work
5 Stonewt operator *(double mult, const Stonewt& st)
6 {
7     return Stonewt(mult * st.m_dPound);
8 }

 

5.下面的5个运算符不能重载:

  sizeof

  .

  .* (成员指针运算符)

  ::

  ?:

6.这些运算符必须由成员函数定义。

7. 下面分别是类定义文件的原型和方法文件的函数定义:

1 //prototype
2 operator double();
3 
4 //definition
5 Vector::operator double()
6 {
7     return m_dMag;
8 }

但请注意,使用直接获取数据成员m_dMag的MagVal()方法更符合逻辑。

posted on 2021-04-23 08:33  阿Paul-黄  阅读(110)  评论(0)    收藏  举报