C++学习(四)

本文详细介绍了C++中的异常处理机制,包括try、throw和catch语句的使用,并对比了C和Java中的异常处理方式。此外还讨论了C++中的访问控制、多态、this指针、运算符重载、字符串操作以及向量等核心概念。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.C++中处理异常和C以及Java的处理过程类似,通常都是try,throw,catch的模式,throw抛出的语句一般会出现在被调用函数内,而其对应的catch则要去相应的调用函数中去进行异常类型的匹配,不过也有几点不同:

catch中的输出语句为:cerr<<....<<endl;

catch(...){} //匹配所有的throw语句;

catch(****),catch中括号的类型为char *即可解决大部分异常,无需用到高级的类型如enum,类等等

char * p=....

...

try

{

...

throw p;

....

}

catch(char * t)

{

....

}

2.private:只能被类内的成员函数访问;

   public:程序中的所有函数都可被访问;

   protected:只能被类内及其派生类的成员函数访问;

3.多态:C++中多态中提到了UpCast(向上数据类型转换:即派生类->基类)

class B:public A;

B b;  A *a=&b;  或者A & a=b;  //可以调用派生类的成员函数

upcast一般和虚拟函数相关,即基类中所有的成员函数前都要加上virtual,如果某个类中有成员函数为虚拟函数,则该类就会为抽象类

我觉得多态有时候会使程序变得很繁琐,尽管它能够提高程序效率,不过有一点我觉得是挺好的,它能够解决成员函数被隐藏的现象,被隐藏的概念可以联想到Java中的子类重写父类的方法一样

注意:声明一个类后要记得加分号,这点我总是忘记,反映出了我没有养成良好的编程习惯,引以为鉴。。。

4.this指向当前对象,在一定的条件下可以用来进行调试;

5.运算符重载很麻烦,其实它实现的就是对运算符(+,-,*,/....)进行再构造,我觉得没有多大必要  operator + (...)

6.由于字符串是由字符构成的,因此string * s="....";是会出现错误的,因为类型不匹配,前者是字符串指针,后者是字符;

   字符串有许多有用的成员函数,可以实现字符串间的各种转换,且字符串我觉得最大的特色是它可以直接拿来做比较运算,赋值运算,如string s1,s2;

s1+=s2   s1>s2   s1=s2  s1==s2......

7.C++中vector---向量,其实就像是一个数组,因此也不是很复杂,vector<数据类型> 变量; //vector有很多成员函数,可以直接拿来使用,如push_back()---存入数,其输出和一般的数组输出一样

vector<vector<int>> m //二维向量

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值