C++易混部分

数组

  • 数组作为函数参数传递时,括号内不需要带具体个数
 void function( int a[], unsigned int n)...void function( int *p, unsigned int n)...int a[10];
 function(a, 10);
  • sizeof的值
int a[10];
sizeof(a) = 40sizeof(a[0]) = 4
  • 数组名是常数,不能赋值,如a++,但指针可以
  • 不能对数组进行整体赋值,但初始化可以
char s[9] = "CPP-Prog"; // 正确
char s[9]; s = "CPP=Prog" // 错误
  • 多维数组作为函数参数,不能每维都不传递元素个数
void function(int a[][], unsigned int n, unsigned int m) //错误写法
void function(int a[][3], unsigned int m) //正确写法

指针常量和常量指针

  • 常量指针:指向常量的指针,不能通过指针修改指向对象的值,但可以改变指针值
int n = 10; const int * p = &n 
  • 指针常量:指针指向的位置不可变化,但可以修改指针指向对象的值,必须在定义时初始化
int n = 10; int * const p = &n
  • 常量指针常量:指针值不可改变,指向对象的值也不可改变
int n = 10; const int * const p = &n

指针与函数返回值

  • 指针类型可以作为函数返回值,返回某个数据对象的地址
  • 不能返回局部变量的地址,只能放回全局变量地址

指针运算

  • 指针与整数加减:以指向的目标数据对象类型为单位,而不是以字节为单位

回调函数

  • 回调函数通过函数指针类型实现,使用函数指针作为参数传递。
  • 函数指针所指向的函数定义可以在未来再实现

面向对象

  • 基类析构函数为什么要定义为虚函数?

当基类指针指向派生类的时候,若基类析构函数不声明为虚函数,在析构时,只会调用基类而不会调用派生类的析构函数,从而导致内存泄露。

  • 构成多态的条件
  1. 必须通过基类的指针或者引用去调用函数。
  2. 基类中必须包含虚函数,且在派生类中必须完成了虚函数的重写。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值