【BigHereo 36】---L9---C++真题之 改错题


 

L9---C++真题之 改错题

 

 

 

 

2016.4真题: 

   1,访问权限:

子类不能用,改错public就行了.

 


   2,初始化,定义,赋值等等.

     (1)在main中, int x1=10;x2=20;---错了没有定义x2的类型,改intx1=10,x2=20;

中间分好改成逗号.

      (2)在类中,不能同时初始化并赋值,例如: int x1=20; 这是错误

 

int a=10;

int*p=a; ------这是不正确的,p是指针,a是int值,所以类型不对.

                     改成: int*p=&a;

 


   3,const应用:

     (1)int *const p=&x1;  ---这是错误, 指针const之后就不能在赋值了,指针必须定义设置变量或对象地址.改成 int *p=&x1;

   (2)纯虚函数, virtual void fun()=0;

       函数定义: void func() const;

 

 

   4,友元

(1)friend void B::fun();

 

 

 

   5,模板类,模板函数

   一有这个,就必须想到template 和 class,typename 这几个关键字.

template<T>;---错误,缺少class或typename

 


   6,函数类型

   一定要记得写函数类型, int 或double

(1)改错: int Test:: x=70;

(2)填空中,如果没有提前声明i, j; 就必须 声明类型:   ( int i=0;i<=10;i++)   

(3)2016.10T44: 有void 就没有 return; 如果是其他 int, double 声明就必须有返回类型.

 


   7,引用 && 指针

      (1)main()函数中,直接用对象,   swap(&a,&b)---这是错误的, 改为 swap(a,b);  

      (2)*p是指针, 不能和 int n 划等号, 但p=n; 这是可以的.

  int*p2;*&p=p2;---这是可以的,但是不能声明对X的引用, int*&p=&x;--错误.

       

                                                                                 但int *p=&x;可以.

    8,重载运算符:  关键字 operator

      (1)s2.operator=(s1); -----operator=等同于=复制号,即 s2=s1;

      (2)重载使用对象引用复制运算符:  str&operator=(str& a);

    重载使用指针赋值运算符:        str& operator=(char *s);

 

str& 本身就是一个返回类型

   (3) str&  str:: operator=(str& a){

       if(this==&a)

             return *this;

delete st;

 st=new char[ strlen(a.st)+1];  //重新申请一个内存

 strcpy(st,a.st);

   return *this;

}

  

 

 

重载运算符保持原有   操作数, 优先级和结合性不变    

 

 


2015.10 T41:

return p; 错误, 声明的是 int *p; 应该返回变量, return *p;

 


2015.10 T43:

  x=5;  错误,复制形式错误,应改为 int A::x=5; 返回类型在前面.

 


2015.10 T44:

      const A a(4); 

       a.set(6);       -------错误, 已经const 了就不能在赋值,变量才能赋值.

 




  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值