关于c++的一些自我认识(3)

接上面:

1.C++中从函数中直接跳回到main主函数,即忽视函数中其它递归调用,函数中使用throw 主函数中使用try catch即可

2.C语言有类型转换机制,在执行运算时,小于int的类型将会提升。换句话说,(这里)两个char类型相加,会自动转换成int类型运算,得到结果后再转换为char类型。这是隐式转换。所以char+char=数字;char+int=数字

3.即便是基类的虚函数,也必须通过 base*x;
base y;
x=&y;
x->display();
这种定义两个对象的方式才能调用。

4.base2继承了base1,而base3仅仅继承了base2,此时若使用虚函数,则base1的指针对象仍然可以访问base3的成员。(因为base3间接继承了base1)

5.. .* :: ?: sizeof无法被重载运算符

6.数组名代表的是首地址,是一个'指针型常量,所以a[];a++无法实现,必须用另一个指针p指向它,改变p的值.但要时刻注意p指向了a的哪里

7.类中私有变量或者公有变量,在方法内与参数同名的时候,可以用THIS指明参数为类中的变量如class obj
{
private:
int var;
public
obj(int var)
{
this->var=var;//这里参数var和私有成员同名,如果不用this无法区分
}
};

8.友元函数必须在类内申明,在类外定义,并且行参必须是类名+引用符号&。如friend fun(f &i)。在类外以i.a,i.b这种间接调用方式调用私有成员

9.class中  const数据成员   和  引用  类型的数据成员必须在该类的对象建立的同时进行初始化,这种初始化只能用成员初始化列表进行。引用类型相当于变量的影子,一模一样,不消耗内存,谁变另一个就会变。而静态函数,内联函数,构造函数不能作为虚函数

10.如何初始化一串字符?如f a(“hh”);可以f(char *t){s=new char[strlen(t)+1];strcpy(s,t);}其中加1是为了存储结束符/n.strlen传入的是首地址所以不是*t


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值