C++
csdn_LYY
这个作者很懒,什么都没留下…
展开
-
对C++中运算符重载的认识
运算符重载的实质是函数重载。运算符重载有两种:重载为类的非静态成员函数和非成员函数。重载为类的成员函数,参数要减少一个,重载为类的非成员函数,参数要写全。形式:类型 operator运算符(参数表){函数体}原创 2021-07-07 21:36:40 · 81 阅读 · 0 评论 -
对C++中派生类的认识
一:声明方式:class 派生类名:继承方式 基类名二:一些基本概念:单继承:只有一个基类。多继承:有多个基类。直接基类:直接继承的基类。间接基类:不是直接而是间接继承的基类。类族:类的家族,许多的继承和派生类构成了类的家族。三:继承方式:有public,private,protected三种。四:类的成员:派生类的成员包括从基类继承来的成员和新增的原创 2021-07-07 21:36:17 · 119 阅读 · 0 评论 -
有关C++中sizeof的知识
今天在看程序的时候,遇到了sizeof,往前翻了翻书,发现书上讲的有点儿笼统,就上网搜了搜,发现了一篇很好的文章,特记录下来。转载网址:http://blog.csdn.net/freefalcon/article/details/54839内容如下所示:0. 前向声明sizeof,一个其貌不扬的家伙,引无数菜鸟竟折腰,小虾我当初也没少犯迷糊,秉着“辛苦我一个,幸福千万人”的伟大思转载 2021-07-03 15:16:54 · 443 阅读 · 0 评论 -
为什么C++会成功?
最近,我在看《C++编程思想》,里面提到了C++成功的七个原因。我将在这篇文章中进行简单的说明。 C++成功的原因是经济上的:转变到OOP(面向对象编程)需要代价,而转变到C++所花的代价较小。 C++的目的是提高效率。C++成功是因为它立足于实际:尽可能地为程序员提供最大便利。 1. 较好的C C++堵塞了C语言中的一些漏原创 2021-07-03 15:15:58 · 78 阅读 · 0 评论 -
对C++中指针和引用的认识
引用是变量的别名,但是它存的是变量的地址。这和指针类似。区别:1.指针偏向底层,引用偏向高层。2.指针可以多次赋值,引用只能赋一次值,引用就像一个指针常量。当要进行参数双向传递时,使用引用有时会比使用指针简洁,可读性好。但有些地方只能使用指针,引用代替不了。以上就是我对于指针和引用的一些认识。原创 2015-03-26 22:52:56 · 425 阅读 · 0 评论 -
对C++中类型显示转换操作符const_cast<类型>(变量)的认识
const_cast(变量),通俗的说,就是将变量中的const属性去掉。一般将常指针转换为普通指针,将常引用转换为普通引用。其他的不常转换。适当的使用它,有时也可以增强安全,因此要适当使用。以上就是我对于const_cast(变量)的一些认识。原创 2015-03-26 23:12:02 · 523 阅读 · 0 评论 -
对C++中指针安全性的理解
有3种安全问题:1.地址安全性问题:当没有赋初值时,可能引起错误。当进行指针的算术运算时,可能引起错误,因此算术运算要慎用。2.类型安全性问题:reinterpret_cast(指针);这种方式的显示转换常用在底层。void类型转换为其他类型时一定要显示类型转换,其他类型转换为void类型时可以隐含转换。3.堆对象的管理:堆对象建立后,使用完之后一定要进行删除。原创 2015-03-26 23:07:49 · 1432 阅读 · 0 评论 -
对C++中派生类的认识
一:声明方式:class 派生类名:继承方式 基类名二:一些基本概念:单继承:只有一个基类。多继承:有多个基类。直接基类:直接继承的基类。间接基类:不是直接而是间接继承的基类。类族:类的家族,许多的继承和派生类构成了类的家族。三:继承方式:有public,private,protected三种。四:类的成员:派生类的成员包括从基类继承来的成员和新增的原创 2015-03-30 22:14:25 · 532 阅读 · 0 评论 -
对C++中类的继承过程的理解
类的继承可分为3个步骤:一:吸收基类成员在吸收基类成员的过程中,基类的构造函数、析构函数和类的静态成员不会被继承,其他的成员会全部继承。二:改造基类成员改造基类成员分成两个方面,第一是和继承方式有关,第二是覆盖和隐藏,其中隐藏说的是在派生类中声明了一个和基类的成员一样的成员,注意是一模一样,如果是成员函数,参数表也要一样,否则就属于函数重载了。三:添加新的成员这是类的继承和原创 2015-03-30 22:23:38 · 720 阅读 · 2 评论 -
对C++中类型兼容规则的认识
类型兼容是指在使用基类对象的任何地方,都可以用公有继承类的对象进行代替,而且一旦代替,就只能调用基类的成员了。兼容是多态性的基础之一。类型兼容规则提高了程序的效率。以上就是我对于类型兼容规则的一些认识。原创 2015-03-31 22:09:08 · 785 阅读 · 0 评论 -
对C++中派生类的构造函数和析构函数的认识
一:构造函数形式:派生类名::派生类名:基类名1(参数1),基类名2(参数2),……基类名n(参数n),数据成员1(参数1),数据成员2(参数2),……数据成员n(参数n){各种操作的说明}执行过程:先执行基类的构造函数,再进行数据成员的赋值,最后执行函数体。其中基类名和数据成员的顺序是由在派生类的定义中声明的顺序决定执行的顺序的,因此它们的顺序是任意的,但为了可读性,还是最好原创 2015-04-02 22:19:12 · 911 阅读 · 0 评论 -
对C++中类的继承方式的认识
一:公有继承(public)在公有继承中,基类 的public和protected 的成员的访问类型在派生类中保持不变,派生类的成员能够直接访问,在类外,类的对象也可以直接调用公有成员,但基类的私有成员在派生类的内部也不能访问,也就是通过成员也不能使用,当然在类外的对象就也不能调用了。二:私有继承(private)在私有继承中,基类的公有成员和保护成员都变成派生类的私有成员,在类中可以原创 2015-03-31 22:03:53 · 422 阅读 · 0 评论 -
对C++中作用域标示符的认识
在类的继承与派生中,为了保证标示符的唯一,就出现了标示符,形式是“::”。就是双冒号。使用形式:类名::数据成员类名::成员函数(参数)一:多继承并且上级无基类的情况在这种情况下,如果派生类中声明了 基类中同名的成员,就会出现同名隐藏。如果是成员函数,即使形参表不同,也不是重载函数,因为重载函数是在同一个作用域中声明的。但如果在派生类中的同名成员前使用“using 类名::成员原创 2015-04-02 22:20:43 · 753 阅读 · 0 评论 -
有关C++中指针的声明的认识
指针本质上也是一种数据类型,它的对象就是指针类型的变量,也即指针变量,指针变量就是用来存储变量的地址的。要理解指针,先来看一个例子:你要找一个同学,如果你知道名字,你当然可以通过名字访问到他,接下来介绍第二种方式,你知道 211房间有他的地址,到了211房间后,你看到一个纸条,上面写着“要找我请到985房间”,于是你就找到他了。反映到程序的指针,211房间就相当于一个指针变量,纸条上的字相原创 2015-01-03 22:40:54 · 862 阅读 · 0 评论 -
对C++中对象数组的认识
数组的元素可以是基本类型的数据,也可以是类类型的对象,如果是类类型的对象,那这样的数组就叫做对象数组。对象数组的初始化方法:类名数组名[数组元素个数]={类名(实参)};例如:Point a[2]={Point(1,2),Point(2,5)};在初始化的时候,元素对象调用构造函数进行初始化。注意:在设计对象数组的时候,若对象元素的值相同,则把构造函数声明为无形参的默认构造函数,若原创 2015-01-02 22:12:28 · 795 阅读 · 0 评论 -
有关C++中的多文件组织结构
今天读到了多文件组织结构,感觉对C++的认识又上了一个层次,接下来就谈谈多文件组织结构。C++中程序的显著特点,有三部分构成,类的定义,类的实现,类的使用(主函数)。通常一个程序是由多个源程序文件构成,源程序文件又称为编译单元,每个源程序文件可以进行单独编写,编译,再进行连接。再来说说源文件和头文件。源文件就是源程序文件,头文件包含了其他文件要用的声明,就是要用到什么就把什么放进头文件原创 2014-12-13 23:12:32 · 4120 阅读 · 1 评论 -
对C++中作用域和生存期的认识
作用域,顾名思义,就是作用的区域,分为函数原型作用域,局部作用域,类作用域和命名空间作用域。它们的作用范围按此顺序变大。生存期,顾名思义,就是生存的日期和时间,分为静态生存期和动态生存期,静态生存期有两种情况,1.命名空间作用域中的变量具有静态生存期,2.在局部作用域中用static声明的变量也具有静态生存期。除了这两种情况之外的变量都具有动态生存期。在局部作用域中声明的变量如果用stat原创 2014-11-30 22:27:56 · 1835 阅读 · 0 评论 -
对栈指针和帧指针的认识
今天又读了有关栈指针和帧指针的知识,对它们的认识加深了。栈指针简单说就是栈顶的地址。帧指针就是栈帧的起始位置的地址。其中,栈帧中存有形参和局部变量等数据,并且这些形参和局部变量与帧指针有密切的联系,栈帧中的形参和局部变量相对于栈指针的位置是一定确定的,因此就可以通过栈指针的地址来定位这些形参和局部变量的地址。以上就是我对栈指针和帧指针的一些认识。原创 2014-11-17 22:33:20 · 2073 阅读 · 0 评论 -
有关C++中sizeof的知识
今天在看程序的时候,遇到了sizeof,往前翻了翻书,发现书上讲的有点儿笼统,就上网搜了搜,发现了一篇很好的文章,特记录下来。转载网址:http://blog.csdn.net/freefalcon/article/details/54839内容如下所示:0. 前向声明sizeof,一个其貌不扬的家伙,引无数菜鸟竟折腰,小虾我当初也没少犯迷糊,秉着“辛苦我一个,幸福千万人”的伟大思转载 2014-11-11 22:25:35 · 555 阅读 · 0 评论 -
【Linux是什么】 Linux的特色
转载地址:点击打开链接转载 2015-02-26 09:18:17 · 413 阅读 · 0 评论 -
对C++中指向类的静态成员的指针的认识
1 指向静态数据成员的指针声明形式:数据类型 *指针名;赋值形式:指针名=&类名::数据成员名;访问形式:*指针名;2 指向静态函数成员的指针声明形式:数据类型(*指针名)(形参列表);赋值形式:指针名=类名::函数成员名;访问形式:指针名(参数列表);注意:指向类的静态数据成员和函数成员的指针其实和普通指针很类似,使用方式也很类似。以上原创 2015-01-17 22:07:16 · 1461 阅读 · 0 评论 -
对C++中this指针的认识
this 指针是一个特殊的对象指针。this 指针是隐含在类的非静态成员函数中的形参(参数),它的使用过程是这样的:当对象在调用成员函数时,对象的地址会自动传递给this 指针,也就是给this 指针赋值,然后this 指针将对象的地址传递给正在调用的成员函数,成员函数再利用这个地址访问这个对象的数据成员,进而完成调用。举个例子:Point 类中有一个成员函数getX();int原创 2015-01-14 23:05:52 · 525 阅读 · 0 评论 -
对C++中编译预处理的认识
程序在正式编译前都要经过编译预处理,编译预处理包括编译预处理指令和编译预处理操作符。1. 编译预处理指令1.#include#include又叫做文件包含指令,是用来包含头文件和源文件的,使之嵌入当前include所在的位置。#include有两种形式:#include和#include”文件名”这两种形式,前者表示用标准方式搜索,后者表示先在当前作用域中搜索,搜不到再用标原创 2014-12-17 22:41:13 · 529 阅读 · 0 评论 -
对C++中的构造函数的再次认识
今天解决了一个困扰我长达几个星期的问题,感觉很有成就感,于是记下这件事以资鼓励。就在几个星期之前,我在读C++的过程中读到了如下一段程序:#include #include using namespace std; class Examinfo{ public: Examinfo(string name,char grade):name(nam原创 2014-11-04 22:57:28 · 796 阅读 · 0 评论 -
程序员既要写好代码,又要写好文档
转载地址:http://www.csdn.net/article/2014-08-12/2821148这篇文章很好,它谈到了写文档的重要性,很受启发。转载 2015-02-26 16:45:42 · 415 阅读 · 0 评论 -
对C++中用vector创建数组对象的认识
vector 是存储在标准库中的,它不是一个类,是一个类模板。vector 是用来动态创建数组对象的。声明形式:vector 数组对象名(表达式);注意:用vector 创建的数组对象一定要进行初始化,如果是基本数据类型,则要用0初始化,如果是类类型,则要调用类的默认构造函数,这时就要保证类中一定要有默认构造函数,当然用户也可以自己为他赋值,但赋的初值都是一样的,声明形式为:v原创 2015-01-24 22:45:48 · 2767 阅读 · 0 评论 -
对C++中指向函数的指针的认识
指针不仅可以指向数据,还可以指向函数。数据在程序中要有内存地址进行存储,同样,函数代码也需要占用内存空间进行存储。函数名其实就是这个函数的代码存储的首地址,也就是说以前声明的函数:数据类型函数名(形参列表);其实也就是:数据类型函数代码首地址(形参列表);那么指针就可以指向一个函数了,指向函数的指针也叫做函数指针。函数指针的声明方式:数据类型(*函数指针名)(形参列原创 2015-01-12 22:58:30 · 515 阅读 · 0 评论 -
对C++中的指针数组的理解
指针数组还是数组,但是它的元素是指针变量,仅此而已。指针数组的声明形式:数据类型 *数组名[元素个数];当然可以进行初始化:数据类型*数组名[元素个数]={初始化列表};例如:int *a[3];就声明了一个一维指针数组,有3个元素:a[0],a[1],a[2].每个元素都是一个指针类型的变量,存储的都是地址。指针需要先赋值后使用,因此在声明指针数组的时候一般要进行赋值。以上就原创 2015-01-10 22:31:40 · 542 阅读 · 0 评论 -
对C++中函数原型作用域的理解
今天读到了有关作用域的一些知识,感觉有必要总结一些。作用域分为函数原型作用域,局部作用域,类作用域,命名空间作用域这几种。函数原型作用域是最小的作用域,它的作用范围最小,在函数的原型声明时的括号里面的形参的作用域就是函数原型作用域。举个例子:intadd(int a,intb);此函数中的a和b的作用域就是函数原型作用域,它们的作用范围仅限于这个括号中,出了这个括号就不管用了。还有原创 2014-11-23 22:50:16 · 2592 阅读 · 2 评论 -
关于C++中类的一些理解
类是面向对象的一个概念,而C++正是面向对象的原创 2014-10-29 23:02:02 · 833 阅读 · 0 评论 -
对C++中动态内存分配的认识
动态内存分配需要两个关键字:new和delete。1 newnew 用来申请内存,这个过程称为建立。声明形式:new 数据类型(参数); (一二适用)这个语句返回一个指向内存首地址的指针。2 delete声明形式:delete 指针名; (一二适用)delete 用来删除new分配的动态内存空间,这叫做释放。如果是对象,则会调用析构函数。d原创 2015-01-19 22:48:34 · 714 阅读 · 0 评论 -
对C++中指向类的非静态成员的指针的认识
指针还可以指向类的非静态成员,也就是数据成员和函数成员。1 指向数据成员的指针声明形式:数据类型*类名::成员指针名;赋值形式:成员指针名=&类名::成员数据名;访问形式:对象名.*成员指针名;对象指针->*成员指针名;2 指向函数成员的指针声明形式:数据类型(*类名::成员指针名)(形参列表);赋值形式:成员指针名=&类名::成员函数名;访原创 2015-01-15 22:41:33 · 635 阅读 · 0 评论 -
对C++中指针运算的认识
指针变量可以进行赋值运算、关系运算和算术运算。1赋值运算就是对指针变量进行赋值。参考:点击打开链接2关系运算只限定在两个同种类型的指针变量之间,若两个指针变量相等,则说明指针变量指向同一个内容的地址。还有指针变量可以和0进行运算,0表示是一个空指针,不指向任何一个地址。3算术运算是指指针变量加上或者减去一个整数,例如:int *ptr;那么ptr+1就是从当前的地址向后第一个变原创 2015-01-07 22:21:52 · 1056 阅读 · 0 评论 -
浅谈C++中变量的存取方式
要访问一个变量,有两种方式,一种是用变量名,一种是使用地址,使用变量名属于直接访问,使用地址属于间接访问。类比:如果一个同学住一个宿舍,你想找某个同学,如果你值得他的名字,你当然可以通过名字找到访问他,再者,如果你值得他的宿舍的地址,你也可以通过这个地址访问他。程序中的变量也是一样,可以通过变量名直接访问,也可以通过变量在内存中的地址来间接访问。在实际应用中,可能根本就没有变量名,或者原创 2015-01-03 22:22:45 · 1016 阅读 · 0 评论 -
浅谈C++中的运行栈的一些知识
今天又看了一遍有关运行栈的知识,在此,我谈谈我的想法。栈,顾名思义,就是客栈的意思(通俗来说)。就说明了它是临时歇息的地方,不是长久停留的地方。变量分全局变量和局部变量,全局变量自始至终有确定的内存地址,而局部变量却没有(部分原因是如果给局部变量分配内存空间的话,在它的生存期结束后(生存期相对于整个程序很短),内存不能释放,造成空间浪费,尤其是局部变量比较多时),那局部变量怎么办呢?这就引原创 2014-11-15 23:02:59 · 1613 阅读 · 0 评论 -
对C++中处理字符串的理解
一:使用字符数组来存储和处理字符数组。1字符串常量本质上就是char类型的数组,而这个字符串就是这个数组的首地址,例如:Char *ptr=”program”;2字符串变量也可以用char数组来表示,例如:char a[8]={‘p’,’r’,’o’,’g’,’r’,’a’,’m’};char a[8]=”program”;char a[]=”program”;这几原创 2015-03-23 22:31:25 · 414 阅读 · 0 评论 -
对C++中指向类的非静态成员的指针的认识
指针还可以指向类的非静态成员,也就是数据成员和函数成员。1 指向数据成员的指针声明形式:数据类型*类名::成员指针名;赋值形式:成员指针名=&类名::成员数据名;访问形式:对象名.*成员指针名;对象指针->*成员指针名;2 指向函数成员的指针声明形式:数据类型(*类名::成员指针名)(形参列表);赋值形式:成员指针名=&类名::成员函数名;访原创 2015-01-15 22:43:50 · 914 阅读 · 1 评论 -
对C++中指针做函数形参的理解
函数形参不仅可以是基本数据类型,也可以是类类型,数组类型,还可以是指针类型。C++中的指针是从C中继承来的,C中引入指针主要有以下几种作用:1. 使参数可以双向传递,也就是形参的值改变会引起实参的值的改变。这一功能在C++中已经可以用引用代替了,当然如果在C++中使用指针的这一功能也未尝不可。2. 提高数据传递的效率,如果程序中要传递的数据很大,而且它们的内原创 2015-01-11 22:20:44 · 840 阅读 · 0 评论 -
浅谈C++中的连接
连接就是将目标文件和运行库中调用的单元进行合并的过程。运行库其实就是一个一个目标文件的集合,它们的结构和普通的目标文件的结构类似。经过连接,目标文件中的代码段和数据段就被分别整合到一起了,而且,其中的变量和函数与编译后的区别就是此时它们有了确定的地址了,就是它们的位置经过连接就完完全全确定了。符号表也会被整合到一起,这个时候重定位信息也能真正发挥作用了。有一点要注意就是在连接形成的可执原创 2014-12-28 22:15:14 · 772 阅读 · 0 评论 -
浅谈C++中的编译
源文件,也就是编译单元,在编译前首先要进行编译预处理,接下来就是所谓的编译了。1. 编译的概念将每个源文件变成目标文件的过程就是编译。2. 目标文件的有关知识目标文件要和目标代码区分开,目标文件包括两个大部分:代码段和数据段。代码段:代码段就是程序中的函数代码的目标代码。数据段:数据段是存放静态对象的地方,也就是全局变量。数据段又包含两部分:初始化数原创 2014-12-23 22:48:41 · 675 阅读 · 0 评论