C++基本概念

本文详细介绍了C++的基本概念,包括面向对象的三大特性(封装、继承、多态),引用、const用法,构造函数与析构函数,this指针,继承效果,虚函数原理,纯虚函数,接口类,RTTI,异常处理,友元,静态成员,运算符重载,模板和标准模板库。通过实例和解析帮助理解C++的关键概念。
摘要由CSDN通过智能技术生成

关于C++的一些基础概念及常见问题

虽然经常接触C++,但是目前还没有系统性地去学习和整理C++当中的一些基本概念和实现。鉴于今后的研究生生涯将会大量用到以C++为代表的计算机语言工具,有必要在这个寒假系统的学习它。本博客以慕课网James老师的课程为基础,结合个人的一些体会。主要以记录和回顾基础概念为主,如果能够看到这篇博客并对您有所帮助,那么本人实在感到幸运。

基本印象

C++作为一门高级计算机语言,与C语言这样的面向过程的语言是不一样的。不一样在哪,主要是编程思路和相应的语言工具发生了变化。面向对象,是指编程过程处理的是各种概念,对象,以及它们的属性,方法。我们最后当然是要命令这些对象去完成一些事情,但是由于对象的完整性,我们可以用他们去完成一些更加复杂的工作。
首先要说的是类(class),类的作用就相当于结构体,但是类在这里就是“对象”的载体,一切围绕对象的过程都是以class为基础的。具体来说,要使用“类”,就需要通过“实例化”去实现一个类,这里有两种方式:通过堆(heap)实例化和栈(stack)实例化。通过堆的实例化就是定义一个指向类的指针,并结合new去实例化一个对象。往往这样还需要去delete指针去释放掉堆中的对象。
C++面向对象的三大基础就是:封装,继承,多态;封装,是指将对象的属性(成员变量)和对象的方法(成员函数)分割开来,使得我们的主函数(也就是完成任务的函数)只需要使用对象的方法,而不去也不能理会对象的属性和属性内部的变化,在这里,我们是通过访问限定符完成这个功能的。
继承,意味着一个派生类可以在拥有基类属性和方法的基础上去定义一些属于自己的属性和方法。
多态,类似于重载,同名的方法,在不同的类中将会有不同的表现。

引用

“&”引用,引用具体表现在很多方面:
int a = 10;
int &b = a;
这时候,b就是a的一个别名,改变b就是改变a
格式:类型名 & 别名 = 原始名,注意,引用的同时就必须赋值,也就是与一个原始对象联系起来
引用作为函数返回值,函数名&(…),这时候,返回的就是对象本身而不是一个新的对象;
引用作为函数参数,函数名(int &a, int &b),这时候,改变a,b,就是改变实参本身

const

const,const修饰,实际上就是修改对象的读写权限,使得对象变为只读的
const int a;
int *p = &a;
这样是不合法的,因为p所指向的对象是可以读写的,而a是只读的
int a;
const int *p = &a;
这样是合法的,因为p所指向的对象只能读,而a具有读写权限
总的来说,指针的权限不能大于指向对象的权限
总结:当指针指向的对象由const修饰,那么指针指向必须也有const修饰;这时,指针本身是可以修改的,而指向的对象是不可以修改的;如果再加上指针本身的const修饰,那么指针
本身也是不能修改的;当对象没有修饰,那么修饰指针指向的const是可以添加的,此时,*p赋值不合法,但是给指向对象本身赋值却是合法的;如果再加上指针本身的const修饰,那么指针本身也不能被重新赋值。
const 用在函数引用的形参前面修饰形参,使得对形参的改变无法改变对应的实参!!!

const修饰的包括常成员变量和常成员函数,其作用在于,使变量只能初始化不能再赋值

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值