C++日记

最近在玩C++,想找个地方把自己学习的感悟记录下来。于是就想到了这个地方,这篇文章会不断的更新,希望自己能坚持......

一 关于指向对象成员函数的指针的问题

     定义指针:数据类型名 (类名::*指针变量名)(参数列表);

     指针赋值:指针变量名=&类名::成员函数名;//千万不要把函数的参数列表带上

     引用:(对象名.*指针变量名(参数列表);//前面那对括号一定要

     另外,只有公用成员才能这样通过指针来访问

     eg.

          class test

          {

           public:

                  int getarea();

           ......

          };

         test A;

         int (test::*p)();

         p=&test::getarea;//不要写成:p=&test::getarea();

         cout<<(A.*p)()<<endl;//不要写成:cout<<A.*p<<endl;cout<<A.*p()<<endl;

//

二 关于纯虚函数

    一般形式:

        virtual 函数类型 函数名 (参数列表) =0;

    注意问题:

         1.一个类中含有纯虚函数,叫做抽象类.抽象类只能被继承,不能被实例化.

            //eg.

                 现在我有一个抽象类circle,那么我就不能在类外出现这样的语句:  circle A;

         2.纯虚函数在派生类中必须重载,否则不能通过.并且重载时,函数的形式要与声明纯虚函数时一样.

            //eg.

                 virtual double get_a ()const=0;

                 virtual double get_a()   //错误,要加上const

                  {return 3.14;}

三 申明指针必须初始化

  eg.  char *a;

          cin>>a;   //错误,由于指针没有初始化,很容易跑飞

          应该这样:

          char *a=new char[10];  //a只能存储10个字符

          cin>>a;

转载于:https://www.cnblogs.com/Wen-Man/archive/2011/10/25/2373760.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值