在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
抽象:其实就是建立模型的一个过程。你要建立一个类,首先要去想它有哪些变量(这就是数据抽象),要实现哪些功能(这就是行为抽象)。 对于同一个对象,抽象的结果没有标准,就看写代码的人怎么想了,达到目的的抽象就是好抽象嘛。 封装:这个看来看去,其实就是写代码的过程。。其中涉及到要把哪些函数做接口,哪些是私有函数等等,但是,说来说去还是写代码。 继承:不用说了吧,就是把人家的函数拿来用呗,我是你儿子,所以你的就是我的╮(╯▽╰)╭ 多态:(天啊我今天第一次见这个词orz)就是一个函数可以处理多种类型的对象。4个实现办法:强制多态,重载多态,类型参数化多态,包含多态。(看来得好好看看这部分内容了 = =) 类:定义一个类大约如下: class Clock // 类名 为了代码整齐一般类中只声明函数原型,函数的实现可以再外部定义,但是需要类名限制。 关于public private 和protect: public 中定义的是函数的外部接口,就是说在类外面,只能用public中的函数。再清楚点,就是在这俩文件外,定义个实体啊之类的时候,只能用这部分的内容。 private 这部分定义的东西,只能被内部拿来使用,不管是变量还是函数,也就是只能被这两个文件内的东西拿来用。 protect 这个玩意儿跟private属性类似,但是两者继承的时候会出现不同的结果,也跟继承的类型有关,这个在继承的部分再详细讨论吧。 内联成员函数:(又一个新词T T,看来我真的什么都不懂啊~)就是说一个函数用的次数比较多的话,为了减少开销,把它设为内联函数,但是注意,这样会增加编译长度,所以最好只选择很简单的函数作为内联函数。内联函数有俩种方式表示,一种是直接在类文件里把函数体写出来,另一种是在成员函数的cpp文件里写这个函数的时候,在返回值类型前加关键词 inline。两种方式效果相同。 对象(实体):类是个抽象的东西,so,我们使用的时候要定义一个实体,就叫做对象。利用对象可以访问类的公有成员函数,采用“.”做操作符。 构造函数和析构函数:(我几乎忘了这对难兄难弟的名字了。。话说这俩一般会自动生成的吧~) 因为不可以在定义变量的时候初始化(别问为啥,反正别初始化,会有编译错误),因此构造函数需要初始化类的变量,构造函数必须与类名相同,且没有返回类型,通常被声明为共有函数。通常构造函数在对象被创建时会被自动调用。如果类中没有写构造函数,编译器会自动生成一个默认的无参数无内容的构造函数,如果已经声明,就不会自动生成。 注:如果自己定义了构函,并且有参数,那么在定义实体的时候就必须给出参数,否则就会出错。如下~ Clock::Clock(int x, int y){ 拷贝构造函数:就是说当你有一个对象,你需要很多一样的对象,你可以初始化很多次,但是这样麻烦嘛,所以就出个拷贝构函,这很常用的(起码我写的很多filter里都会用到),他就是把一个实体的属性都拷贝到另一个上去。 Clock::Clock(Clock &c){ 拷贝构函被调用的情况有好几种,比如一个函数的参数是类的实体时,或者函数返回值是类的实体时,拷贝构函都会被调用,想知道原因的话自己查吧。。我懒得写。 析构函数:就是用来释放这个类用的空间,一般在实体生存期结束的时候被自动调用。跟构造函数一样,没有返回类型,函数名跟类名相同但是前面有个‘~’,如果不写系统也会自动生成一个啥都不错的默认的析构函数。形式就是: ~Clock(){} (真的是毫无节操啊d(╯﹏╰)b) |
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论