2018-04-12 C++问题小结以及面向对象思想

1、C++指针和引用的区别

指针p:可以看做是一个对象,它有自己的地址(指针有自己在内存中的地址,所以有指向指针的指针),它内部可以存值(存的是指向的数据类型的值)。由于对象有常量和变量之分,所以指针也有常量和变量之分。常指针:所指向的变量地址是不可变的;指向常量的指针:指针所指向的数据类型是个常量,但是指针的指向是可以改变的。声明一个指针之后不用立即初始化,指针可以指向NULL。

引用:引用不是一个对象,它没有自己的地址,可以把引用看作是一个对象的别名。定义了一个对象之后,就必须初始化,不能指向NULL;并且一旦与一个值绑定之后,就不能再和其它值绑定在一起。

指针和引用的使用示例

2、函数重载和函数重写的区别

函数重载:当函数就有相同的函数名,但参数列表的情形不相同时(参数的个数不同或者参数的类型不同),这样的同名不同参数的函数叫做函数重载。要注意的是:仅仅是返回值类型的不同,无法构成重载。它是C++多态性的一种体现。

函数重写:也被成为函数覆盖;是指子类重新定义虚基类(抽象类)中具有相同名称和参数类型的虚函数或者成员函数,主要是在继承关系中出现。(1)重写的函数和被重写的函数必须都为virtual函数,并分别位于基类和派生类中;(2)重写的函数和被重写的函数,函数名和函数参数必须完全一致;(3)重写的函数和被重写的函数,返回值相同,或者返回指针或引用,并且派生类虚函数返回的指针或引用的类型是基类中被替换的虚函数返回的指针或引用的类型的字类型。它也是C++多态性的一种体现。

3、对抽象类、virtual的使用和理解

抽象类,是指包含虚函数的类它不能实例化对象,只能定义类的指针和引用,只能作为上层基类存在。用virtual声明的虚函数有两种:(1)普通虚函数(简称虚函数):有一个缺省实现;(2)纯虚函数:只有一个定义,没有具体实现。我对virtual的理解是:它是一种C++接口继承的方式。C++的继承方式有实现继承和接口继承;实现继承就是,继承父类中已经定义好的成员函数,通过创建子类的对象,传入不同的值去调用,无需额外的编码;另外一种是接口继承:是指只继承声明,具体的实现要子类自己去完成;通过抽象类中的virtual可以达到接口继承的效果。

4、说说面向对象的三个特征、以及你对它们的理解

(1)继承:让某个类型的对象获得另一个类型的对象的属性的方法;包括实现继承和接口继承;继承的过程是从一般到特殊的过程。

(2)封装:把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏。一个类就是一个封装了数据以及操作这些数据的代码的逻辑实体。通过封装,可以对对象内部的数据设置不同级别的保护。

(3)多态:一个类的实例的方法在不同情形的使用下有不同的表现。多态机制使具有不同内部结构的对象可以共享相同的外部接口。这意味着,虽然针对不同对象的具体操作不同,但通过一个公共的类,它们(那些操作)可以通过相同的方式予以调用。’

5、抽象类与虚基类的区别

抽象类:包含有virtual虚函数的类

虚基类:虚继承主要用于一个类继承多个类的情况,避免重复继承同一个类两次或多次所产生的二义性问题。虚基类是相对于它的派生类而言的,它本身可以是一个普通的类。在直接派生类的继承语句中用virtual关键字。例如 由类A派生类B和类C,类D又同时继承类B和类C,这时候类D就要用虚继承的方式避免重复继承类A两次。

6、对静态数据和静态方法的理解

静态数据和静态方法是对于类而言的,是类的所有实例对象所共享的数据和方法,直接通过类来进行调用。在内存中,静态数据是不存在于类的实例对象中的,它不会重复产生,只在内存中保佑一块一直存储静态值,可以将它看成是相对于这个类而言的全局方法或者全局变量。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,607评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,047评论 2 379
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,496评论 0 335
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,405评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,400评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,479评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,883评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,535评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,743评论 1 295
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,544评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,612评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,309评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,881评论 3 306
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,891评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,136评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,783评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,316评论 2 342

推荐阅读更多精彩内容

  • 前言 把《C++ Primer》[https://book.douban.com/subject/25708312...
    尤汐Yogy阅读 9,500评论 1 51
  • C++类和对象 C++ 在 C 语言的基础上增加了面向对象编程,C++ 支持面向对象程序设计。类是 C++ 的核心...
    863cda997e42阅读 633评论 0 4
  • 1.面向对象的程序设计思想是什么? 答:把数据结构和对数据结构进行操作的方法封装形成一个个的对象。 2.什么是类?...
    少帅yangjie阅读 4,985评论 0 14
  • 作者:唯静 近游成都、长沙,不喜喧闹,夜出赏景。花木水景,佳人入画,触景生情。遇闲暇,重拾旧好,借长相思词牌,反复...
    唯静的世界阅读 1,192评论 41 23
  • 引言 在学习Scala的过程中,我发现其在构建大规模分布式计算系统上有与生俱来的特质。其丰富的类型系统可以帮助编程...
    JasonDing阅读 2,194评论 1 2