正在阅读:C++面向对象编程入门:类(class)C++面向对象编程入门:类(class)

2005-03-08 15:56 出处:PConline 作者:管宁 责任编辑:xietaoming

  下面我们来看一下利用指针和利用引用间接调用类的成员函数,对于对于指针和引用调用成员函数和调用普通函数差别不大,在这里也就不再重复说明了,注意看代码,多试多练习既可。

  代码如下:

#include <iostream>   
using namespace std;   
class test   
{   
    private:   
        int number;   
    public:   
        float socre;   
        int pp;   
    public:   
        int rp(int); 
};   
int test::rp(int a)//在外部利用域区分符定义test类的成员函数   
{   
    number=100; 
    return a + number; 

 
void run(test *p)//利用指针调用 

    cout<<p->rp(100)<<endl; 

void run(test &p)//利用引用 

    cout<<p.rp(200)<<endl; 

 
void main()   
{   
    test a; 
    run(&a); 
    run(a); 
    cin.get();   
}

  前面我们说过,类的成员如果不显式的生命为public那么它默认的就是private就是私有的,私有声明可以保护成员不能够被外部访问,但在c++还有一个修饰符,它具有和private相似的性能,它就是protected修饰符。

  在这里我们简单说明一下,他们三着之间的差别:

  在类的private:节中声明的成员(无论数据成员或是成员函数)仅仅能被类的成员函数和友元访问。
  在类的protected: 节中声明的成员(无论数据成员或是成员函数)仅仅能被类的成员函数,友元以及子类的成员函数和友元访问。
  在类的public:节中声明的成员(无论数据成员或是成员函数)能被任何人访问。


  由于private和protected的差别主要是体现在类的继承中,现在的教程还没有设计到友元和子类所以这里不做深入讨论,但上面的三点务必记得,在以后的教程中我们会回过头来说明的。

  总的来说,类成员的保护无非是为了以下四点!

  1.相对与普通函数和其它类的成员函数来说,保护类的数据不能够被肆意的篡改侵犯!

  2.使类对它本身的内部数据维护负责,只有类自己才能够访问自己的保护数据!

  3.限制类的外部接口,把一个类分成公有的和受保护的两部分,对于使用者来说它只要会用就可以,无须了解内部完整结构,起到黑盒的效果。

  4.减少类与其它代码的关联程,类的功能是独立的,不需要依靠应用程序的运行环境,这个程序可以用它,另外一个也可以用它,使得你可以轻易的用一个类替换另一个类。


  下面为了演示类成员的保ぬ匦裕颐抢醋鲆桓銮蚶嘤蜗罚?

  我们设计一个类,来计算球员的平均成绩,要求在外部不能够随意篡改球员的平均成绩。

  我们把该类命名为ballscore并且把它放到ballscore.h的有文件中!

class ballscore 
{   
    protected
        const static int gbs = 5;  //好球单位得分 
        const static int bbs = -3;  //坏球单位扣分 
        float gradescore;  //平均成绩 
    public
        float GetGS(float goodball,float badball)  //goodball为好球数量,badball为坏求数量 
        { 
            gradescore = (goodball*gbs + badball*bbs) / (goodball + badball); 
            return gradescore;  //返回平均成绩 
        } 
};

键盘也能翻页,试试“← →”键

关注我们

最新资讯离线随时看 聊天吐槽赢奖品