【BigHereo 36】---L9---C++真题之 改错题
2017-10-26 12:00
651 查看
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;} 重载运算符保持原有 操作数, 优先级和结合性不变
[align=center][/align]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 了就不能在赋值,变量才能赋值.
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;} 重载运算符保持原有 操作数, 优先级和结合性不变
[align=center][/align]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 了就不能在赋值,变量才能赋值.
相关文章推荐
- 【BigHereo 37】---L10---C++真题之 代码填空
- 【BigHereo 39】---L12---C++真题之 最后大题代码
- 【BigHereo 35】---L8---C++真题总结
- 2013第四届蓝桥杯 C/C++本科A组 真题答案解析
- [YTU]_2560(C++继承(改错题))
- C++学习(36)
- 【C++】改错题总结
- 蓝桥杯 第三届C/C++预赛真题(6) 大数乘法(数学题)
- 2012年第三届蓝桥杯C/C++本科组真题训练(二)(2017.2.8)
- C++笔试面试真题回顾与知识点总结
- C++面试必知必会(3)-程序改错
- C++继承改错题
- 网易实习笔试真题C/C++
- 蓝桥杯 第四届C/C++预赛真题(3) 第39级台阶(递归)
- 【BigHereo 42】---L15---C++第三遍读书积累记--2015.10
- 2013第四届蓝桥杯 C/C++本科A组 真题答案解析
- 计算机二级C++改错题小结
- C++第6周项目1 - 改错
- leetcode 36 Valid Sudoku C++
- 第五届蓝桥杯C/C++本科B组(真题试做)(1~5)