C、C++总结

2024-07-22

C、C++总结(精选5篇)

C、C++总结 篇1

1、类:类是一种抽象的数据结构,用来描述对象的属性,是将不同数据类型的数据以及与这些数据相关的操作封装在一起的集合体。(封装性)

一个类的对象所占空间的大小由它的数据成员所占据的空间总和决定;当类有virtual函数时,再加上4个字节的大小。

2、面向过程与面向对象程序设计的不同:

(1)过程是基于算法的,而对象是基于类的;

(2)过程是以函数(过程)的设计来实现的,而对象是以类的设计来实现的;

(3)过程通过数据流图(流程图)来体现的,而对象是通过类图(用例图)来体现的;(4)过程需要将步骤一步一步的具体化,而对象则只注重类的设计,不管实现方法。

3、面向对象的四大特点:抽象、封装、继承、多态

4、访问控制权限:

(1)public公有型:外部可以访问

(2)protected 保护型:除了本类、子类与友元可访问外其它的都不能访问(3)private 私有型:除了本类外,外部的都不能访问

5、类与对象的区别:

(1)二者的定义不同:类是不同类型数据及其相关操作的集合,对象则是类的实例化(2)类是个类型,不占空间,但对象占空间。

(3)类是类型而不是数据对象,每个类的对象都是该类数据成员的拷贝

6、继承与派生的目的:(1)实现代码的重用

(2)使已存在的类不需修改地适应新应用 7.继承的特点:

(1)每个派生类代表基类的特定版本

(2)基类的属性和方法,派生类必须拥有(构造与析构不会被继承)8.继承的3种方式:public,private,protected

9、多态:是指发出同样的消息被不同类型的对象接收后导致完全不同的行为(1)多态的条件:

○1有两个是父子关系的类 ○2有同名的虚函数

○3有父类指针或引用调用子类对象(2)多态的实现:

函数的重载 运算符重载 虚函数

1、static有什么用途?(请至少说明两种)关键字static的作用是什么?

定义静态变量 1.限制变量的作用域 2.设置变量的存储域

C和C++中static用法(1)C中:

○1当一个变量被定义成static型时,表明该变量是一个静态变量,存储在静态存储区中,只能被定义初始化一次;特别的当全局变量被定义成static型时,还表明该变量不能被外部文件所引用

○2当一个函数被声明为static型时,表明该函数是一个静态函数,不能被外部文件所调用

1(2)C++的类中:

○1当类的数据成员被声明为static型时,表明该成员是一个能被所有对象共享的数据成员,不与任何具体对象挂勾

○2 当类的成员函数被声明为static型时,表明该成员是静态成员函数。

2、引用与指针有什么区别? 1)引用必须被初始化,指针不必。

2)引用初始化以后不能被改变,指针可以改变所指的对象。2)不存在指向空值的引用,但是存在指向空值的指针。

3、描述实时系统的基本特性

在特定时间内完成特定的任务,实时性与可靠性

4、全局变量和局部变量在内存中是否有区别?如果有,是什么区别? 全局变量储存在静态数据库,局部变量在堆栈 5 什么是平衡二叉树?

左右子树都是平衡二叉树 且左右子树的深度差值的绝对值不大于1

6、堆栈溢出一般是由什么原因导致的? 没有回收垃圾资源

7、什么函数不能声明为虚函数? constructor 8 冒泡排序算法的时间复杂度是什么? O(n^2)

9、Internet采用哪种网络协议?该协议的主要层次结构? tcp/ip 应用层/传输层/网络层/数据链路层

10、Internet物理地址和IP地址转换采用什么协议? ARP(Address Resolution Protocol)(地址解析協議)

11、.IP地址的编码分为哪俩部分?

IP地址由两部分组成,网络号和主机号。不过是要和“子网掩码”按位与上之后才能区分哪些是网络位哪些是主机位。

12、分别给出BOOL,int,float,指针变量 与“零值”比较的 if 语句(假设变量名为var)

BOOL型变量:if(!var)int型变量: if(var==0)float型变量:

const float EPSINON = 0.00001;

if((x >=-EPSINON)&&(x <= EPSINON)

指针变量:

if(var==NULL)

13、不能做switch()的参数类型是: switch的参数不能为实型/

14、局部变量能否和全局变量重名?

答:能,局部会屏蔽全局。要用全局变量,需要使用“::” /

15、如何引用一个已经定义过的全局变量? 答:extern

16、全局变量可不可以定义在可被多个.C文件包含的头文件中?为什么? 答:可以,在不同的C文件中以static形式来声明同名全局变量。

17、语句for(;1 ;)有什么问题?它是什么意思?

答:和while(1)相同。

18、do„„while和while„„do有什么区别?

答:前一个循环一遍再判断,后一个判断以后再循环

18、static全局变量与普通的全局变量有什么区别?static局部变量和普通局部变量有什么区别?static函数与普通函数有什么区别?

static全局变量与普通的全局变量有什么区别:static全局变量只初使化一次,防止在其他文件单元中被引用;static局部变量和普通局部变量有什么区别:static局部变量只被初始化一次,下一次依据上一次结果值;

static函数与普通函数有什么区别:static函数在内存中只有一份,普通函数在每个被调用中维持一份拷贝。

程序的局部变量存在于(堆栈)中,全局变量存在于(静态区)中,动态申请数据存在于(堆)中。

19、sizeof(...)是运算符,它的功能是:获得保证能容纳实现所建立的最大对象的字节大小;strlen(...)是函数,要在运行时才能计算。参数必须是字符型指针(char*)。它的功能是:返回字符串的长度。20、队列和栈有什么区别? 队列先进先出,栈后进先出

21、在c语言库函数中将一个字符转换成整型的函数是atool()吗,这个函数的原型是什么?

函数名: atol 功 能: 把字符串转换成长整型数

用 法: long atol(const char *nptr);

22、对于一个频繁使用的短小函数,在C语言中应用什么实现,在C++中应用什么实现? c用宏定义,c++用inline

25、直接链接两个信令点的一组链路称作什么? PPP点到点连接

26、软件测试都有那些种类? 黑盒:针对系统功能的测试

白合:测试函数功能,各函数接口

27.确定模块的功能和模块的接口是在软件设计的那个队段完成的? 概要设计阶段

28/TCP/IP通信建立的过程怎样,端口有什么作用? 三次握手,确定是哪个应用程序使用该协议 29/进程和线程的差别。

线程是指进程内的一个执行单元,也是进程内的可调度实体.与进程的区别:(1)调度:线程作为调度和分配的基本单位,进程作为拥有资源的基本单位

(2)并发性:不仅进程之间可以并发执行,同一个进程的多个线程之间也可并发执行

(3)拥有资源:进程是拥有资源的一个独立单位,线程不拥有系统资源,但可以访问隶属于进程的资源.(4)系统开销:在创建或撤消进程时,由于系统都要为之分配和回收资源,导致系统的开销明显大于创建或撤消线程时的开销。30、测试方法

人工测试:个人复查、抽查和会审

机器测试:黑盒测试和白盒测试

31、Heap与stack的差别。Heap是堆,stack是栈。

Stack的空间由操作系统自动分配/释放,Heap上的空间手动分配/释放。Stack空间有限,Heap是很大的自由存储区

C中的malloc函数分配的内存空间即在堆上,C++中对应的是new操作符。

1、软件测试(英语:software testing),描述一种用来促进鉴定软件的正确性、完整性、安全性和质量的过程。换句话说,软件测试是一种实际输出与预期输出间的审核或者比较过程。软件测试的经典定义是:在规定的条件下对程序进行操作,以发现程序错误,衡量软件质量,并对其是否能满足设计要求进行评估的过程。流程:1.软件测试流程 :需求了解--测试计划--测试设计--测试用例编写--测试执行--bug管理跟踪--测试报告生成

2.bug就是测试过程中发现的程序缺陷,可以指需求上的,也可以指功能、性能上的

3.bug提交有多种方式,可以通过测试管理工具来管理bug,比如QC等 4.bug的生命周期: 发现bug(open)--修复bug(fixed)--关闭bug(closed)4.软件测试方法:是指测试软件性能的方法。包括有:白盒测试、黑盒测试、动态测试(单元测试、集成测试、系统测试、验收测试、回归测试等。)

5.测试工具:三类软件测试工具: Mercury测试工具,Rational测试工具,Segue测试工具,qtp自动化测试工具和AutoRunner工具

6.测试内容:负载压力、功能测试、白盒测试、测试管理、测试辅助。

2、算法(Algorithm)是一系列解决问题的清晰指令,即能够对一定规范的输入,在有限时间内获得所要求的输出。图像处理算法工程师

1、一个算法的优劣可以用空间复杂度与时间复杂度来衡量。

2、一个算法应该具有以下五个重要的特征: 有穷性、确定性、输入、输出、可行性。

3、冒泡排序(BubbleSort)一次比较两个元素,如果他们的顺序错误就把他们交换过来。基本概念是:依次比较相邻的两个数,将小数放在前面,大数放在后面。即在第一趟:首先比较第1个和第2个数,将小数放前,大数放后。然后比较第2个数和第3个数,将小数放前,大数放后,如此继续,直至比较最后两个数,将小数放前,大数放后。此第一趟结束,将最大的数放到了最后。在第二趟:仍从第一对数开始比较(因为可能由于第2个数和第3个数的交换,使得第1个数不再小于第2个数),将小数放前,大数放后,一直比较到倒数第二个数(倒数第一的位置上已经是最大的),第二趟结束,在倒数第二的位置上得到一个新的最大数(其实在整个数列中是第二大的数)。如此下去,重复以上过程,直至最终完成排序。由于在排序过程中总是小数往前放,大数往后放,相当于气泡往上升,所以称作冒泡排序。

4快速排序:基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。

算法的时间复杂度是一个函数,它定量描述了该算法的运行时间。一个程序的空间复杂度是指运行完一个程序所需内存的大小。

C、C++总结 篇2

《C语言程序设计》[1]课程是以往高校计算机及其相关专业的传统课程,然而近年来该课程逐渐向《C/C++程序设计》[2]过渡,更有甚者干脆摒弃C语言课程直接开设C++课程,这一现象值得我们反思,究竟应该如何在C与C++之间取舍呢,二者有何异同呢?下面分别从三方面进行阐述。

2 C/C++的三点区别

C语言是一种结构化语言,其重点在于算法和数据结构。C程序的设计首要考虑的是如何通过一个过程,对输入或环境条件进行运算处理得到输出或实现过程(事务)控制,而对于C++,首要考虑的是如何构造一个对象模型,让这个模型能够契合与之对应的问题域,这样就可以通过获取对象的状态信息得到输出或实现过程(事务)控制。因此C与C++的最大区别在于它们的用于解决问题的思想方法不一样。之所以说C++比C更先进,是因为“设计这个概念已经被融入到C++之中”,而就语言本身而言,在C中更多的是算法的概念。

2.1 编程思想

C++与C语言最大的区别在于编程思想的截然不同,前者是面向对象(OOP)[3]的编程语言,而后者则是面向过程的结构化的编程语言。尽管二者都是为了解决问题或开发系统、应用程序的工具,各有其特点,但面向对象的程序语言将程序设计的领域与日常生活拉得更近,计算机也变得更加人性化。面向过程的C语言强调程序的功能,以函数(功能)为中心,C++在C语言这一强大巨人的肩膀上发展,通过C语言强大的软硬件控制功能,融入面向对象的编程思想,强调程序的分层、分类,以抽象的类为基础,进行对象的定义与展示,使应用程序具有封装性(安全)、继承性(复用)和多态性(灵活)。

2.2 关键字

由于C++是在C语言的基础之上发展的,因此C语言中的关键字几乎都可以在C++中使用,但是C++中增加了一些C语言中所不支持的关键字,这些关键字能够作为函数和变量的标识符在C程序中使用,尽管C++包含了所有的C,但是显而易见没有任何C++编译器能够编译这样的C程序。例如C++中的new和delete取代了C中的malloc和free,C++中还增加了public、private、try、catch、throw等等很多关键字。

2.3 语法格式

C++和C语言在语法格式上也有很大的不同。C程序员可以省略函数的返回类型,C++却不可以,即使是无返回也应加上void类型。注释的格式C语言只支持/**/,C++还支持//,这种注释不能换行。在C语言中输入输出是使用scanf()和printf()函数来实现的,而C++是使用类来实现的,C++中用于控制I/O的iostream类库替代了C语言中的strio函数库。C++中的try/catch/throw异常处理机制取代了C中的setjmp()和longjmp()函数。C++中的引用(&)简化了C语言中过于繁杂的指针(*)。

下面以一个简单的C++程序为例,//后注释中为C形式:

3 C/C++的三点联系

顾名思义C++是以C语言为基础增加一些新内容发展而来,C++是C语言的推广和延伸,绝大部分C语言中正确的语句在C++中也可以使用。教师给学生介绍C++与C语言的渊源时,也总爱利用“超集”与“子集”两个字眼。就其产生历史而言,1972年贝尔实验室设计出C语言,随着面向对象技术的发展,1983贝尔实验室设计了C++,在C语言的基础上增加了面向对象的程序设计功能。这些笔者不再赘述,下面从三个细节分析二者的联系。

3.1 main函数

C++与C语言中都有main函数,好似一个年轻人和一位年长者都有心脏一样,main函数在两种语言中都起着不可或缺的作用,不但缺之不可而且担当着重要的作用即程序的入口。下面分别从最简单的C语言程序和最典型C++程序入手分别展示二者的源程序框架结构。

3.2 类与结构

类(class)是面向对象程序设计中的最基本的概念,是实现面向对象程序设计的基础与核心。类是将不同类型的数据和与这些数据相关的操作封装在一起的集合体,是对要处理问题的抽象描述。定义了抽象类之后可利用该类定义其实体即该类的对象。结构(struct)是C语言中很有用的一种数据类型,是以后学习C++中“类”的基础。结构体成员组合在一起形成一个整体,其成员可以是不同的类型。定义结构体之后可用该结构体类型定义其实体即结构体变量。C语言中的结构可以说是C++中的类的雏形,但其区别也是显而易见的,结构中只是相同或不同类型的数据成员的集合,没有成员函数;结构中也没有public和private关键字,其中的数据成员默认都是公有的,一般函数都可以访问,而C++的类中的数据成员默认情况下都是私有的,只有类对象中的成员函数和友元函数能够访问,这样极大地提高了数据的安全性。

下面首先从类和结构的定义方式说明二者之间的联系,然后从一个实例体现其渊源。

程序运行结果:10:20:30

3.3 模板与宏

模板是C++程序设计中的重要机制,可以节约程序代码,提高面向对象程序设计的可重用性和可维护性。模板把函数或类要处理的数据类型参数化,表现为参数的多态性,从而有效地实现了程序设计中的代码重用。C语言中的宏定义是一种预处理方式,可以改进程序设计环境,提高编程效率。其中带参数的宏定义方式不只是简单的字符串替换,还要进行参数替换,为日后学习面向对象程序设计中的函数模板奠定基础。

函数模板的定义形式:

4 结束语

C++虽然是由C语言发展而来,二者在解决问题时的风格却截然不同,在程序设计上有着本质的不同。C的轻便灵活与C++的详尽完善形成了鲜明的对比。在实际开发中,有些程序员爱使用C语言避开庞大复杂的C++,他们认为C代码量少、执行效率高;有些则不然,他们认为C++的完善机制更易于项目的开发实现。同样在高校计算机专业的C/C++课程设计方面,很多老师和学生也有着很大的分歧,究竟开设C语言好还是C++更好呢?笔者认为两门课程都很重要,面向过程的和面向对象的两种思想都应该引导学生理解掌握,因为它们都有很广泛的应用市场,若受课时所限老师不必面面俱到,应该粗讲和细讲相结合[5],引领学生学习C/C++中的核心内容。至于教学方法和手段笔者认为应把握一个原则,即不能一味讲解语法,应教会学生思考程序的设计方法,同样一个程序为何这样设计更好更高效,能不能那样设计呢,类似的问题学会举一反三,培养自己的编程思路。毕竟授之以鱼不如授之以渔。

摘要:针对目前高校开设C/C++课程中出现的问题,结合教学实践,从编程思想、关键字和语法格式三方面论述了二者之间的区别,从主函数、类与结构和模板与宏三方面阐述了二者之间的联系,最后给出培养学生编程思路这一教学原则。

关键词:C/C++,区别,联系,程序设计,面向对象

参考文献

[1]谭浩强.C程序设计[M].3版.北京:清华大学出版社,2005.

[2]高俊文.C/C++程序设计[M].北京:人民邮电出版社,2005.

[3]萨维奇.C++面向对象程序设计[M].周靖,译.6版.北京:清华大学出版社,2007.

C、C++总结 篇3

c与c++程序连接问题 它们之间的连接问题主要是因为c c++编绎器对函数名译码的方式不同所引起的……

考虑下面两个函数 /* c*/ int strlen(char* string) { ... } //c++ int strlen(char* string) { ... } 两个函数完全一样。在c在函数是通过函数名来识别的,而在C++中,由于存在函数的重载问题,函数的识别方式通函数名,函数的返回类型,函数参数列表三者组合来完成的,

因此上面两个相同的函数,经过C,C++编绎后会产生完全不同的名字。所以,如果把一个用c编绎器编绎的目标代码和一个用C++编绎器编绎的目标代码进行连接,就会出现连接失败的错误。 解决的方法是使用extern C,避免C++编绎器按照C++的方式去编绎C函数 在头文件中定义: extern “C” int strlen(char* string) 或 extern “C” { int strlen(char* string) } 当C编绎器遇到extern “C”的时候就用传统的C函数编译方法对该函数进行编译。由于C编绎器不认识extern “C”这个编绎指令,而程序员又希望C,C++程序能共用这个头文件,因此通常在头文件中使用_cplusplus宏进行区分: #if define _cplusplus extern “C”{ #endif int strlen(char* string) #ifdefine _cplusplus } #endif虽然很基础,但是解释透彻!

c++知识点总结 篇4

Day01

一、名字空间(标准库中的标识符都定义在std名字空间中)

1、名字空间的定义

namespace 名字空间名{ 名字空间成员 }

2、名字空间指令

using namespace 名字空间名;

3、名字空间声明

using 名字空间名::标示符;

4、无名名字空间

namespace { 名字空间成员;}

5、无名名字空间的声明

::标示符

二、C++的结构、联合和枚举

1、C++的结构里面可以定义函数

2、C++里定义结构型变量的时候可以省略struct关键字

3、C++中的声明联合类型的变量可以不加union关键字,支持匿名联合

4、C++的枚举是一个独立的数据类型,而不是整数类型。

三、C++的bool类型

bool类型变量只可以取true或false

四、C++的函数

1、函数支持重载

重载:在同一个作用域中,函数名相同,参数表不同的函数之间构成重载关系。函数原型:返回类型+函数名+参数表

函数签名:函数名+参数表 //c++中,同一作用域中,函数签名必须是唯一的。

2、函数指针

函数指针的类型决定其具体指向的重载版本,而不是由实参的类型决定。

3、extern “C”

通过extern “C”指示编译器以C语言的方式处理C++源文件中的C函数(不做函数名置换)。

5、缺省参数

如果为函数的一个参数指定了缺省值,那么该参数右面的所有参数必须都有缺省值。注意:缺省参数只能用在函数的声明中。

6、哑元

借助哑元参数保证函数的向后兼容。借助哑元实现函数的重载。

7、内联

内联函数保持了函数的特性,同时避免了函数调用的开销。

inline关键字仅仅表示希望该函数被编译为内联,通常情况下,大函数和递归函数不会被处理为内联。

五、内存分配

1、new/delete操作符

如果内存是以数组的形式分配的,那么也应该按照数组的方式释放——delete[]。

如果new失败,这时会抛出bad_alloc异常,程序应该捕获并处理该异常,否则进程将被系统杀死。

Day02

一、引用&

1、引用实际上是一个变量的别名。

2、引用必须在声明的同时初始化

3、引用一旦初始化,再不能引用其他变量

4、只有const型引用才能引用常量

5、不能对常引用做赋值操作

二、C++中的类型转换

1、静态类型转换: static_cast<类型>(变量);需要编译器对类型转换安全性进行检查; 将void*转换为具体类型的指针。

在源类型和目标类型之间只要有一个方向上可以做隐式类型转换,那么在两个方向上就都可以做静态类型转换。

2、动态类型转换:dynamic_cast<类型>(变量);用于在具有多态特性的父子类之间的转换。

3、常量类型转换:const_cast<类型>(变量);去除指针或者引用上的const属性。

4、重解释类型转换:reinterpret_cast<类型>(变量);允许对任意类型的指针进行转换。在指针和整型之间进行转换。

三、类和对象

1、类的声明和定义可以分开、类的成员变量、类的成员函数。

2、类的访问控制

1)public:公有成员,谁都可以访问。

2)private:私有成员,只有自己才能访问。

3)protected:保护成员,只有自己和自己的子类可以访问

访控限定符

| 访控属性

| 自己

| 子类 | 其它--------------public

|

公有

|

Ok | Ok | Ok protected

|

保护

|

Ok | Ok | No private

|

私有

|

Ok | No | No 注意:类的缺省访控属性是私有,而结构体的缺省访控属性是公有。

3、构造函数

1)如果一个类中没有定义任何构造函数,系统就会自动提供一个默认的无参构造函数。2)如果为一个类定义了构造函数,系统就不会在为该类提供任何构造函数了。3)构造函数可以重载 4)构造函数初始化列表:

1>需要对类类型的成员变量做初始化; 2>含有引用或常量型成员;

4、对象的创建与销毁 1)在栈中创建对象

类名 对象名(构造参数);// 隐式构造

类名 对象名 = 类名(构造参数);// 显式构造 2)在栈中创建对象数组

类名 数组名[元素个数] = {类名(构造参数),...};3)在堆中创建对象

类名* 对象指针 = new 类名(构造参数);4)在堆中创建对象数组

类名* 对象数组指针 = new 类名[元素个数];Day03 类和对象(下)

一、this指针

1、一般而言,关键字this是一个指针。对于一般成员函数,它指向调用该成员函数的对象,而对于构造函数,它则指向这个正在被构造的对象。

2、在构造函数中可以通过this指针区分成员变量和局部变量(包括参数)。

3、基于this指针的自身引用还被用于支持多重串联调用的场合。

4、将this指针作为函数的参数,实现对象间的交互。

二、常量型成员函数和常量型对象

1、常量型成员函数中的this指针为常量型,以此防止对成员变量的意外修改。对常量型对象(包括指针和引用),只能调用其常量型成员函数。

2、被声明为mutable的成员变量可以在常量型成员函数中被修改。

3、常量型成员函数和具有相同签名的非常量型成员函数构成重载关系。

4、当常量型成员函数与非常量型成员函数构成重载关系时,非常量对象会优先选择非常量型成员函数。

三、析构函数

1、没有参数,不能重载。

构造顺序:创建成员变量->构造函数体 析构顺序:析构函数体->销毁成员变量

2、缺省析构函数

1>对于未定义析构函数的类,系统会提供缺省析构函数,该析构函数负责销毁该类的成员变量。

2>缺省析构函数不负责释放动态分配的资源。

3、对于动态分配的资源,必须通过自己定义的析构函数进行释放。

4、析构函数是释放的资源不仅限于内存资源。

四、拷贝构造函数

1、拷贝构造:用一个已有的对象去构造另一个同类型的副本对象。

2、拷贝构造是通过拷贝构造函数实现的。class 类名 {

类名(const 类名& 源对象引用){

从源对象到当前对象的复制;

} };

3、如果没有为一个类提供自定义的拷贝构造函数,系统就会提供一个缺省的拷贝构造函数,实现从源对象到目标对象的复制。

4、某些情况下系统提供的缺省拷贝构造函数可能无法满足具体的应用需求。这时就有必要提供自定义的拷贝构造函数。

5、拷贝构造发生的时机 1>构造对象副本;

2>以对象作为函数的参数和返回值; 3>以对象的方式捕获异常。

五、拷贝赋值运算符

1、拷贝赋值:用一个已有的对象赋值给另一个同类型的副本对象。

2、拷贝赋值是通过拷贝赋值函数实现的。class 类名 {

类名& operator=(const 类名& 源对象引用){

从源对象到当前对象的复制;

} };

3、如果没有为一个类提供自定义的拷贝赋值函数,系统就会提供一个缺省的拷贝赋值函数,实现从源对象到目标对象的复制。

4、某些情况下系统提供的缺省拷贝赋值函数可能无法满足具体的应用需求。这时就有必要提供自定义的拷贝赋值函数。

六、静态成员

1、静态成员是属于类的,唯一的,可为该类对象所共享。

2、静态成员函数只能访问静态成员。

3、非静态成员函数既能访问静态成员,也能访问非静态成员。

4、静态成员变量必须在类外定义并初始化。

5、既可以通过类也可以通过对象访问静态成员,但最好通过类。

6、静态成员同样受类的访问控制属性的影响。

Day04

一、指向成员变量的指针

1、定义语法:成员变量类型 类名::*指针变量名;string Student::*pstrName;//pstrName是指向Student类中string类型的成员变量的指针

2、赋值即初始化语法:指针变量名= &类名::成员变量名;pstrName = &Student::m_strName;// pstrName指向Student类的m_strName成员变量

3、解引用语法:对象.*指针变量名 或者 对象指针->*指针变量名 Student student(...);cout << student.*pstrName << endl;Student* pStudent = &student;cout << pStudent->*pstrName << endl;

二、指向成员函数的指针

1、定义语法:成员函数返回类型(类名::*指针变量名)(形参表);void(Student::*pfuncSetName)(const string&);

2、赋值和初始化语法:指针变量名 = &类名::成员函数名;pfuncSetName = &Student::SetName;

3、解引用语法:(对象.*指针变量名)(...)、(对象指针->*指针变量名)(...)Student student(...);//创建对象(student.*puncSetName)(...);Student* pStudent = &student;//创建对象指针(pStudent->*pfuncSetName)(...);

三、对于静态成员,可以使用普通指针访问,不需要成员指针。

四、操作符重载

1、操作符的通用语法

1)双目操作符:<左操作数><操作符><右操作数>,L#R。

2)单目操作符:<操作数><操作符>或<操作符><操作数>,O#或#O

2、被重载操作符的操作数中至少有一个是类类型。

3、重载操作符不会改变优先级。

4、重载操作符无法改变操作数的个数。

5、除“()”以外所有操作符函数都不能含有缺省参数。

6、所谓重载操作符实际上就是定一个提供操作符运算法则的函数(成员函数或全局函数)。

五、双目操作符重载

L#R 全局函数:operator#(L, R),如果需要可定义为友元。成员函数:L.operator#(R)

六、单目操作符重载

#O 全局函数:operator#(O)成员函数:O.opertor#()取负运算“-“

七、输入输出操作符重载

一般情况下,输入输出操作符比较适合通过全局(友元)函数来实现,避免修改标准C++库的iostream类。

重载输出运算符函数形式:

ostream& operator<<(ostream& os, const 类名& 对象引用){

输出对象的内容;

return os;} 重载输出运算符函数形式:

istream& operator>>(istream& is, 类名& 对象引用){

输入对象的内容;

return is;}

八、不允许重载的操作符

::

-作用域解析.取字节数 typeid针对键盘设备的输入流对象针对显示器设备的输出流对象针对出错设备的输出流对象-stderr

3、文本I/O 1)文本文件的格式化I/O 2)文件位置

A.get和put位置 B.随机读写 3)非格式化I/O

C地块总结 篇5

2014年初C1C2,全面开工,在兄弟部门的积极支持配合下,在经过部门全体的努力,C地块提前达到了销售节点,整个地块全面实现封顶。回顾2014年的工作,成绩与教训并存,现将项目实施过程中的经验教训作以下总结:

1、工程进展概述

C1区:7-13#主楼及所有商铺6月初提前达到销售节点,均已取得预售许可证,7月底地库主体施工完成,9月底主体结构全部封顶,目前二次结构砌筑及粉刷,机电安装、外墙保温、装饰等正全面展开施工,幼儿园11月初也已开工,市政开工在即。

C2区:1-6#主楼及所有商铺8月底提前达到销售节点,均已取得预售许可证,9月初地库主体施工完成,10月底主体结构全部封顶,目前二次结构施工,机电户内二次管线安装。

C3区:完成交地和场整理,地块内开闭所已开建

在保证项目正常施工的前提下,9月份地块组织了大量资源参与完成大环境整治和LED屏的施工,场容场貌全面提升的同时,为扩大项目在无锡的影响力做出了积极努力,有力支持了营销。

进度控制:全年为实现各项目各阶段进度目标,特别是强销售节点,工程部采取了严格的进度管控措施,确保目标如期实现。工程部按照模块计划编制项目内控计划,并编制详细人力及资源配置计划,并责任到人;所有计划经总、分包确认签字后,书面下发,现场进度严格依据计划执行。提前做好各种方案编制,如雨季施工方案、基坑施工方案等,为现场实施提供技术支持。加强与设计部、成本部及总包、监理沟通,形成例会制度,及时解决图纸上现场问题。为确保计划落实,赶工期间每天召开进度专题会议,对滞后的工作要求总、分包单位采取切实可行的措施:加强现场巡查,参与总包生产例会,了解劳动力、材料及设备等施工情况,及时解决存在问题,适时同总分包管理人员约谈劳务负责人,如无明显改观,进行工作面分割或清除出场;开展对总分包劳务班组进行考核,连续不合格班组,建议进行更换;当现有协调有阻时,及时约谈总、分包公司层面领导,适时更换进度把控不合格总、分包项目部管理人员;严控材料供应,对关键工序的材料,采取入厂抽查、驻厂监督的方式,保证材料及时供应。

质量、安全文明施工管理:

质量管控方面,C地块成立由项目公司,监理单位,总包单位组成的质量管控小组,完善管控体系加强过程控制;加强对总包和监理岗位管控,明确总包责任,健全质量管理体系,加强企业自检制度,达到各项工作验收一次通过。提高监理人员管理,按合同要求配备各专业监理人员,加强监理旁站及验收。依据图纸、规范图集、现场实际情况结合好的经验做法,编制各工序标准做法,并组织监理、总分包进行培训考试,提高现场质量管控水平。坚持样板先行,实行工法样板、实体样板、样板段制度,并组织管理人员及工人参观并交底,使用质量标准形象化。在实施时,重点做好过程控制,强化监理监督职能,加强监理对施工过程管控,分检验批对工程质量进行工序验收,同时严把材料关。工程部采取相关措施保证质量体系运转,坚持每周质检制度,加大实测、实量、等检查力度,严格把关质量达到标准化常态化;严格执行集团“浇筑令”等质量管控制度,督促总包质量管理体系有效运转;对监理、总包管理人员及劳务班组进行定期质量、安全评比,不合格监理、总包管理人员建议更换,对不合格劳务班组建议更换。

安全管理方面,同质量管理架构成立安全管控小组。小组以总包安全部为管理骨干,劳务分包安全员和临电工执行及杂工队为执行队,业主各楼栋负责人监督。重点把控人员教育交底、脚手架、开挖、动火、吊装、临电、特种设备等较大危险源和文明施工,坚持日常巡检,排查危险源。工程部和项目公司质安部坚持每周组织质安巡检,检查督促总包安全管理成效。加强总包安全培训,提升全员安全意识、专业技术知识和管理能力,业主方指派专人每周跟踪。

2、团队建设:

工程部积极开展团队建设,通过培训、活动、交流,外出学习,加深了解,增进友谊,提升团队凝聚力和自豪感,激发团队成员的工作热情。团队活队形式多样,主要有:

1)每周组织专业技能培训。2)每月组织一次内部总结交流。

3)每月不定期组织拓展、各类文体比赛、聚会团队等活动。4)出版内刊。工程部工作中存在的不足

成绩与教训并存,工作也存在的较多的不足,主要有以下:

1)因前期主体进度迟缓和销售节点压力,导致地库如期开工影响主楼节点,最终地库开工严重滞后,工期压缩。

2)工人施工技术水平参差不齐,造成个别位置质量不满足规范要求。3)部分楼栋由于劳务队伍不稳定,导致工期较计划滞后。4)抢工期间施工质量有所下滑

5)地下室清理,主楼二次结构进度缓慢,造成机电安装做业面不足,开工滞后

6)现场场地规划不合理,材料清理不及时,造成安全文明施工不到位,场容场貌一度混乱。

7)大环境整治和LED屏施工初期对个别施工单位实力过高估计,至使施工一度较为被动

2、针对以上不足,工程部采取了以下改进措施:

1)即时调整施工布置,将地库上方钢筋加工场调至幼儿园场地,合理策划土方和基础施工线路,合理安排工序搭接,调整场内劳动力、材料及设备等资源投入,并增加场外劳动力设入。

2)加强施工技术交底、培训;样板先行,现场先工法样板,后实体样板,明确验收标准 ;加大实测实量力度,严格各道工序验收等。

3)加强劳务队伍管理,要求总包单位选择有实力的劳务队伍,由项目公司、监理、总包共同对劳务队现场管理团队进行考核,考核合格后才允许进入项目施工。

4)组织总包,监理召开专题会协调解决,列销项表,制定定人定时间,必要时采取相应处罚措施甚至约谈施工单位总部领导。

5)加大检查力度,列销项单限期整改。利用大环境整治契机,重新规划场地,对地块文明施工全面彻底整顿。

6)甲方及时介入,管理下沉,充当施工员角色,组织资源,协助施工单位抢工。

工程部工作思路

总结过去,展望未来,任重而道远,理清和改进工作思路,抓重点要首要问题。C地块将重点把控以下工作: 1)2)继续加强对现场安全文明施工的管理。

加强现场实体质量的管理,重点为二次结构、防水、外墙包围、装饰和机电安装,重点消除外墙、地下室漏水、外墙开裂等质量风险。

3)4)加强与设计、营销、成本部沟通,明确交付标准。

做好与各部门的沟通,通过各部门的共同努力,确保所有施工节点均满足集团管控计划要求,按模块化节点完成所有任务,特别确保C1地块提前入伙,其中重点协调市政、外墙、门窗、景观工程。

5)协调设计部、监理和施工单位,做好图纸交底、审查和深化,确保施工有图有依。

6)7)

上一篇:华住酒店考核方案下一篇:劳模先进事迹心得体会