
C++入门基础
文章平均质量分 77
C++是在C语言的基础上开发的一种通用编程语言,应用广泛。C++支持多种编程范式 --面向对象编程、泛型编程和过程化编程。其编程领域众广,常用于系统开发,引擎开发等应用领域,是至今为止最受广大程序员受用的最强大编程语言之一,支持类:类、封装、重载等特性!
life is wonderful
pay for life, pay for yourself
展开
-
NCRE二级C++考试总结
在去年考省计算机一级的时候,基本也算是大一上半年的学习总结,没有一次的检验,哪里知道自己这一阶段学习的结果和掌握知识的多少,这次也不例外,也算是检验近两个月再次学习C++的结果。不是说想去争取过,最主要的还是我哥说的,督促自己去学习。我想现在的我彻底明白了,结果并不重要,重要的是自己在这个学习过程中掌握的知识和实际的操作能力。 之前一直听说NCRE二级里最难的就是C++语言程序设计原创 2015-03-21 16:11:42 · 2705 阅读 · 2 评论 -
C++之模板
模板 定义:模板是一个将数据类型参数化的工具,它把“一般的算法”和其“对数据类型的实现”区分开来。 模板可以分为函数模板和类模板。 采用模板的方式定义函数或类时不确定某些函数参数或数据成员的类型,而将它们的数据类型作为模板的参数,在使用模板时根据实参的数据类型确定模板参数(数据类型)的数据类型。 函数模板 函原创 2015-03-19 19:25:52 · 1250 阅读 · 0 评论 -
C++之纯虚函数和抽象类
纯虚函数 纯虚函数是一种特殊的虚函数,这是一种没有具体实现的虚函数。纯虚函数的定义格式为: class { virtual ( )=0; }; 其中,是纯虚函数名。该函数的实现用赋值为0来表示,被定义为无。 在一个基类中说明一个纯虚函数,它不对应任何具体实现,该虚函数原创 2015-03-17 21:23:35 · 1446 阅读 · 0 评论 -
C++之虚函数
虚函数是一种非静态的成员函数,定义的格式为: virtual (原创 2015-03-14 21:35:21 · 1516 阅读 · 0 评论 -
C++之静态联编和动态联编
联编是指一个程序自身彼此关联的一个过程。按照联编所进行的阶段不同,可分为静态联编和动态联编两种。 静态联编 静态联编是指在程序编译连接阶段进行联编。这种联编又称为早期联编,这是因为这种联编工作是在程序运行之前完成的。 编译时所进行的联编又称为静态束定。束定是指确定所调用的函数与执行该函数代码之间的关系。 下面来看一个静态联编的程序例题原创 2015-03-14 20:13:40 · 7027 阅读 · 3 评论 -
c++之运算符重载
运算符可以重载,运算符重载的含义是对已有的运算符进行重新定义,使它具有一种新功能。运算符重载并不是定义一种新的运算符。运算符重载的目的是为了满足某种操作的需要,在原有运算符实现不了,又不增加新的运算符种类的基础上,对含义相近的运算符进行重载。 运算符重载注意: 1,哪些运算符可以重载? 大多数运算符都可以重载,只有少数的运算符不能重载。不能重载的运原创 2015-03-12 20:33:06 · 1810 阅读 · 0 评论 -
c++继承之虚基类
虚基类的概念: 若在多继承派生类中继承的基类再拥有一个公共基类,则这个公共基类会在多继承派生类的对象中产生多个公共基类子对象,如果要使这个公共基类再多继承派生类中只产生一个基类子对象,则需要将这个基类设置为虚拟基类,简称虚基类。 引进虚基类的目的是为了解决二义性问题,使得公共基类再它的派生类对象中只产生一个基类子对象。 虚基类说明格式为:原创 2015-03-11 20:56:59 · 2353 阅读 · 0 评论 -
c++之多继承
多继承定义:从多个基类中派生的继承称为多继承,多继承的派生类则有多个基类。 多继承派生类的定义格式: class ; , ,... { }; 与单继承派生类的定义格式相比较,可以看出,它与单继承派生类在定义格式上的区别仅在于它的基类名多,各基类名之间用逗原创 2015-03-10 19:50:43 · 1286 阅读 · 0 评论 -
C++之派生类的构造函数和析构函数
派生类的构造函数 派生类对象的数据结构由基类中说明的数据成员和派生类中说明的数据成员共同组成。在创建派生类的对象时,不仅要对派生类中说明的数据成员初始化,而且还要对基类中说明的数据成员初始化。由于构造函数不能被继承,因此,派生类的构造函数必须通过调用基类的构造函数来初始化基类中的数据成员。所以,在定义派生类的构造函数中,不仅要对自己数据成员进行初始化,还要包含调用基类的构造函数对原创 2015-03-10 13:53:14 · 2615 阅读 · 2 评论 -
C++之单继承
单继承定义:从一个基类中派生的继承称为单继承。也可以说,单继承的派生类只有一个基类。在单继承中,一个基类可以生成多个派生类,但是每个派生类只有一个基类。 单继承派生类的定义格式: class : { }; 其中是从一个中派生出来的类名,并且该派生类是按指定的派生的。 一,原创 2015-03-09 20:52:32 · 2098 阅读 · 0 评论 -
C++之基类与派生类
C++语言中,通过继承的机制,可以利用已有的类型来定义新的类型。所定义的新类型拥有原来类型的属性,同时还具有新的属性。我们称已存在的用来生成新的类型的类称为基类。而由已存在的类派生出来的新类为派生类。派生类继承了基类,派生类中拥有基类中所有成员,并且派生类本身还拥有它自己的新成员。派生类可以只从一个基类中派生,也可以聪哥多个基类中派生。 在使用class定义派生类时,默认的继承方原创 2015-03-08 20:59:07 · 1301 阅读 · 0 评论 -
C++语言的三大特性
又重新看了一个多月的书,也算是基本上了解了一些很基础的东西,学习C++就得掌握它所具备的三大特性。 封装性是基础,继承性是关键,多态性是补充,并且多态性存在于继承的环境中。 封装性 C++语言中支持数据封装,类是支持数据封装的工具,对象是数据封装的实现。在封装中,还提供一种对数据访问的控制机制,使得一些数据被隐藏在封装体内,因此具有隐藏性。封装原创 2015-03-08 18:38:17 · 17235 阅读 · 1 评论 -
C++复杂对象之堆对象
这学期增加的数据结构的课,感觉冯老师还是蛮好的,总是在给我们补一些我们学C++时遗留的东西,她在编写一道例题时,用了运算符new和运算符delete,我这才想起了接触过这个东西,但是忘了,最近的做题的过程中也遇到了这种东西,就是动态的创建一个变量或对象,今天就来说堆对象。 堆对象 在程序运行中,根据需要随时创建的对象称为堆对象。堆对象是被存放在内存堆区的一种变量,它原创 2015-03-08 10:38:57 · 1625 阅读 · 0 评论 -
C++复杂对象之常对象
这种对象算是复杂对象中简单的一个 常对象是指常类型对象,即对象常量。定义的格式为: const ( ) 或 const ( ) 定义常对象时必须给常对象赋初值,并且该对象不再被更新。 在C++编程中,常使用指向常对象的指针或常对象的引用作为函数的参数。这样做既利用了指针或引用作为函数参数原创 2015-03-07 22:02:01 · 1252 阅读 · 0 评论 -
C++之引用
真是用多了就知道一个东西的好处,跟指针比起来,C++引入的引用非常的方便,这一篇就来说一说引用。 简单的说,引用就是某个变量或对象的别名。建立引用时,要用某个变量名或对象名对它进行初始化。于是它便绑定在该变量或对象上。引用只作为某个变量或对象的别名来使用,对引用的改动就是对用来对它初始化的变量或对象的改动。引用不是变量或对象,它不占内存空间。引用只是替代某个变量或对象的别名。引用有原创 2015-03-07 20:37:30 · 1134 阅读 · 0 评论 -
C++复杂对象之子对象
其实吧,在C++程序中,还是复杂的对象比较多,这篇就开始逐渐梳理一下复杂的类对象。 一个对象作为另一个类的成员时,该对象称为类的子对象。子对象实际上是用对象作为某类的数据成员。 比如:class A{};class B{private: A a;//给出的私有数据成员是类A的对象}; 当一个类中出现了对象成员时,原创 2015-03-06 23:31:49 · 3683 阅读 · 1 评论 -
c++之函数的调用方式
今天可以说也是检验学习C++的成果,感觉还是差好多,数据结构的老师的几个问题就把我们都难住了,主要还是对概念的了解不透彻,造成了三个概念的混乱与模糊,还好老师又仔仔细细的复习了一边。 函数的调用过程实际上是对栈空间的操作过程,因为调用函数是使用栈空间来保存信息的。函数的调用过程大致可以描述如下: 1,建立被调用函数的栈空间。 2,保护调用函数的运行状原创 2015-03-06 17:55:58 · 4615 阅读 · 2 评论 -
VC++6.0之标准using namespace std
最近一直在看由电子工业大学出版的吕老师编写的c《++语言程序设计(第三版)》,其中的程序代码书写我并不知道有一定的缺陷,我一直沉浸在他的书中,竟然没有再去看看其他的版本,原来新的C++已经明确提出不提倡用的一些规定这本书还在用,也是我在最近的做题陷入了一定的困境,很郁闷,后来在标准的习题中了解了一些编程代码书写规范。今天就好好学习一下标准的代码书写。 先来看看旧版的C++编程风格(原创 2015-03-05 12:32:38 · 3343 阅读 · 3 评论 -
C++之友元函数和友元类
在介绍类和对象时,已经说过类具有封装性,类中的私有成员一般只有通过该类中的成员函数才可以访问,而程序中的其他函数时无法直接访问类中的私有成员的。如果在一定的条件下需要访问类的私有成员,就必须通过对象来调用类的成员函数,但是频繁的调用会非常的繁琐,也会降低程序的运行效率。为了解决这个问题,有了友元函数这个帮手,但是引进它,也破坏了类的封装性和隐藏性,使得非成员函数可以访问类的私有成员,一般不建议使用原创 2015-03-04 20:00:31 · 1718 阅读 · 0 评论 -
C++之类的常成员
类的常成员与类的静态成员相似。类的常成员包括常数据成员和常成员函数。 常数据成员 在类的成员定义中,使用修饰符const说明的数据成员称为常数据成员。常数据成员必须初始化,并且它的数值不能被更新。常数据成员是通过构造函数的成员初始化列表进行初始化的。 还是举例说明常数据成员:#include class A {public: A(int原创 2015-02-27 10:35:12 · 1500 阅读 · 0 评论 -
C++之类的静态成员
在C++语言中,静态成员可以实现类的多个对象之间的数据共享。静态成员不是属于某个对象的,而是属于类的。它是某个类的所有对象共有的。静态成员有两种:静态数据成员和静态成员函数。 静态数据成员 静态数据成员作为类的一种成员,它被类的所有对象所共享,而不是属于某个对象的。在存储上只需存储一处,就可以供所有的对象使用。静态数据成员由于是公有的,因此它的值对每个对象都是一样的原创 2015-02-25 16:24:29 · 947 阅读 · 0 评论 -
C++函数之类的构造函数析构函数
对于类对象成员的初始化我们始终是建立成员函数然后手工调用该函数对成员进行赋值的,那么c++中对于类来有没有更方便的方式能够在对象创建的时候就自动初始化成员变量呢,这一点对操作保护成员是至关重要的,答案是肯定的。关于C++类成员的初始化,有专门的构造函数来进行自动操作而无需要手工调用,在正式讲解之前先看看c++对构造函数的一个基本定义: 1,C++规定,每个类必须有默认的构造函数,没原创 2015-02-25 10:01:59 · 2087 阅读 · 0 评论 -
C++自定义数据类型之类和简单对象
类 类的定义:类是一种复杂的数据类型它是将不同类型的数据和与这些数据相关的操作封装在一起的集合体。因此,类具有对数据的抽象性,隐藏性和封装性。类是C++程序中最常用的自定义数据类型。 说白了,类就是将现实世界中具有相同属性的一类客观事物的抽象,而对象就是类的一个实例,这就是对象。 类的定义格式: 类的定义格式一般分为两大部分:说明部分原创 2015-02-24 10:09:45 · 2413 阅读 · 0 评论 -
C++之函数
函数 说到C++的函数,首先要学会从已有的程序中分理出函数,首先我们就来举一个例子。#include void main(){ double x,y; cout<<"Input double x and y: "; cin>>x>>y; double z=x+y; cout<<"x+y="<<z<<endl;} 这是一个求两个浮点数之和的程序原创 2015-02-23 20:53:39 · 1073 阅读 · 0 评论 -
C++自定义数据类型之联合
联合 联合是类型不同,数目固定的若干个变量的集合。组成联合的若干个成员是共用一个内存地址。 联合的定义格式: union { }; 联合变量的定义格式: union 在定义一个联合变量之前,必须先定义一种联合模式。原创 2015-02-23 10:14:43 · 2007 阅读 · 0 评论 -
C++自定义数据类型之结构
结构 结构是数目固定的不同数据类型的若干变量的集合。实际上,结构也可以是相同变量的集合。 定义结构变量应先定义结构,任何一个结构变量都具有某种结构模式。结构模式是结构变量所属的形式,一个结构模式可以定义若干个结构变量。 结构模式的定义格式: struct { (给出每个成员原创 2015-02-22 20:21:43 · 1518 阅读 · 0 评论 -
C++自定义数据类型之数组
数组 数组是数目固定,类型相同的若干变量的有序集合。 数组的定义格式: [][]... 带有n个[]的为n维数组。方括号中的表示维数的大小,它也可以是一个常量表达式。 数组元素的表示: [][]... 数组下标规定为从0开始并且各个元素在内存中是按下标的升序顺序存放的。 数组的赋值:数组可以被赋初值(及被初始化),也可以被赋值。在原创 2015-02-20 09:52:04 · 7702 阅读 · 0 评论 -
C++自定义数据类型之枚举
枚举 如果一个变量你需要几种可能存在的值,那么就可以被定义成为枚举类型。之所以叫枚举就是说将变量或者叫对象可能存在的情况也可以说是可能的值一一例举出来。 枚举是一种自定义数据类型,具有这种数据类型的量称为枚举常量。由于枚举常量实际上是一个int型常量,故称为枚举常量。 枚举是若干具有名字的整型常量的集合。这些整型常量组成了枚举表,枚举表中的每一项称为原创 2015-02-17 18:30:59 · 2524 阅读 · 0 评论 -
C++自定义数据类型之指针
好像这方面的知识理解起来很费劲儿,看了三四遍了吧,还是模模糊糊的,没有条理性,所以就开始翻看博客里这方面的内容,可能是看的少吧,还是不能让我彻底的明白,因此就度娘了一下,看了几篇关于指针的文章,觉得有必要去仔细的推敲。 要了解指针,多多少少会出现一些比较复杂的类型,所以先介绍一下如何完全理解一个复杂类型,要理解复杂类型其实很简单,一个类型里会出现很多运算符,他们也像普通的表式一样,原创 2015-02-15 18:37:11 · 4087 阅读 · 0 评论 -
C++语言之内联函数和重载函数
内联函数 在c++编程中,通常将代码短,访问频率高的函数定义为内联函数,这样可以提高效率。对于内联函数的定义方法是在一般函数的函数头前家关键字inline。 可以定义一个求一个数的平方的内联函数: inline int asd_int(int x) { return x*x;原创 2015-02-11 21:39:11 · 2198 阅读 · 0 评论 -
C++函数之递归调用
在书上看到过归纳的使用递归调用解决问题的特点: 1,将原有的问题能够分解为一个新问题,而新问题又要用原有问题的解决方案,这便体现了递归。按照这一特点将问题分解下去,每次出现的新问题都是原问题简化的子问题,而种种分解出来的新问题是具有已知解的问题。 2,递归调用的过程可分为两个阶段:递推和回归。 3,递归调用通过递归函数来实现。 4.一般来说,原创 2015-02-11 18:21:36 · 6847 阅读 · 0 评论 -
C++语言中的编译预处理
相对于C语言,C++确实改进了不少,由于C++兼容C语言的好多东西,所以在程序分析的时候不免遇到一些C语言的问题。 说起预处理功能,它是由一些处理命令组成的,由于这些命令在程序正常编译之前执行,因此得名。C++常用的预处理命令有三种:1宏定义命令 这种命令一般用在C语言中,C++中已经很少使用,宏定义命令分为简单宏定义命令和带参数宏定义命令。 简单宏定义命令用来讲一个标识原创 2015-02-09 10:49:33 · 1893 阅读 · 0 评论 -
C++语言中的循环语句
首先编写简单的小程序熟悉三种循环语句编程求出自然数1~100之和。 1 while循环语句: #include void main() { int i=1,sum=0; while(i { sum+=i;原创 2015-02-05 18:53:46 · 3717 阅读 · 0 评论 -
C++之基本数据类型转换和转换函数
C++语言中类型转换有两种:隐式转换和强制转换。在类型转换的过程中还有保值转换和非保值转换之分。保值转换是安全的,数据精度不会受到损失,如数据类型有低向高转换;非保值转换是不安全的,数据精度会受到损失,编译系统对这类转换会发出警告错,但是依然会运行程序,如数据类型由高到低的转换。1保值的隐式转换 在表达式中,如果两个操作数的类型不一致,则进行由低类型向高类型的安全转换。原创 2015-02-04 16:35:23 · 3155 阅读 · 1 评论 -
C++程序的易混淆的数据元素(变量和常量)
通过这几天的看书,越来越觉得只有静下心来才能真正的读进去,尤其看编程的C++语言,以前总觉得只要会一些就可以了,拉下了许多,都是一知半解,重新仔细了解C++的一些基本概念,感觉自己要坚定好好学习这门课程,为将来的数据结构奠定一个好的基础。今天就把这两天的一些基础知识做一下梳理和总结。一变量的类型(主要梳理存储类) 变量的类型包含数据类型和存储类,一般我们都知道数据类型,我就是遗原创 2015-02-03 20:36:45 · 1499 阅读 · 0 评论 -
VC++6.0编译系统的使用
对于这个VC++6.0编译系统其实一年前接触使用了,当时也没有怎么明白,编译的单文件程序和多文件程序也是混着使用,根本就不清楚File中的C++ Source File和Project中的Win32 Console Application两者的区别。当时如果写程序就随便打开一个,有的时候还不能编译成功,搞得自己很郁闷,后来也没有去弄明白,只是草草的就结束编程。 现在又重新看了一遍教材,纸上谈原创 2015-02-02 19:30:49 · 2001 阅读 · 2 评论 -
C++语言的词法和词法规则
一C++语言的字符集(同C语言) 1大小写英文字母 a~z(国际ASCII码为97~122)和A~Z(国际ASCII码为65~90) 2数字字符 0~9(国际ASCII码为48~57) 3其他字符 空格 ! # % ^ & * _(下划线) - + = ~ / \ | .原创 2015-02-01 16:39:40 · 2989 阅读 · 1 评论