一整天想着“塞翁失马”的问题,自己多少有点阴郁。不过还好,每当自己着手技术学习或者是项目看法的时候往往一步步心情就会平复下来。这也是自己为什么拼命要走技术路线的原因。喜欢是肯定的。当然苦也是异于常人的。刚刚看了篇刷了各大offer的微信共享,牛人不缺,缺的是有梦想能坚持的人。不知道自己能走多远,但是,在各种前辈思想的鼓舞下,我想他的期限是一辈子。
今天来整理第7章到第8章。由于7章的结构体往往在c++中会被类所取代,可能在c语言中是重头戏,当年我考研的时候,由于拜读的是大名鼎鼎的严蔚敏严老师的数据结构,所以最后考数据结构的时候,我全是用结构体写的题目,就最后结果来看,还是挺成功的。外加研一在linux下实现了一些题目,其中有多线程,高并发等等,也是用结构体来写的,所以我在此将一些比较容易忘记的,关键的进行记录吧(第7章的内容),其他的我就不上了,包括后面的习题。我将所有数据结构的实现全部移到后面的面向对象的部分,这也是c++这门语言的基石。
Chapter7~Chapter8
->自定义数据类型
1、先上一个结构体的代码:
#include<iostream> using namespace std; struct MyStruct { int num; char name[10]; char sex; int age; float score; char addr[20]; }; MyStruct ms1, ms2; int main(){ return 0; }
2、string类型只存具体字符串的一个入口地址,所以用sizeof来求它的大小是固定的,我在VS下运行是28,这个和具体的编译器实现有关,所以不能一概而论。但是当他包含在结构体或者是类当中,是其中的一个属性,那么他只是string类型的大小,和具体string对象的内容无关,所以整体的结构体的大小不会睡着string的长度增长而增长,推荐使用string。
3、结构体求sizeof的时候,注意内存对齐的问题,VS下面是4字节对齐的。例如:
struct MyStruct { char ch; int a; };
这种结构体的大小是8,虽然char的长度是1,int的长度是4,但是为了4字节对齐原则,这个的大小是8(在char那个地方的后面补齐3字节);注意区分下面两种的对其方式方法:
struct MyStruct { char ch; char cj; int a; };//大小是8 struct MyStruct1{ char ch; int a; char cj; };//大小是12
4、枚举类型的举例:
enum MyEnum
{
a=9,b=1,c,d,e,f
};
MyEnum me=c;
me=(MyEnum)3;//这个的值是d
可以在内部给枚举的常量成员赋值,在最后一个赋值的常量后面的常量,每一个递增1,例如c的值是2,d的值是3,因为是常量,并不能在外部给常量赋值,例如a=4在外面的话就不正确了。
5、typedef的使用:
typedef int Integer;//这个将Integer代替int类型
typedef char *P;//这个是将P设置为char型的指针,以后P a;这种,a就是char指针类型
p.s:这个东西在程序语言中最关键的用处是便于移植,在嵌入式中使用广泛!
->类和对象(这一章节介绍居多,重点的难点都在这一章开始,后面的每一章,所以这一章我也将较为简洁的总结一下。此后,每一章单独写,不再两章合并)
1、类的老掉牙的三大特性:继承、封装、多态。为什么还要在这里提出来,前几天面试京东的时候,在第二面,面试官花了一大篇幅问了我对面向对象的特性的理解,并且他也提出来,他并不想听很课本很理论的东西,他要我说项目之后的心得体会。我着重说了下封装特性,主要基于我研究生做的几个oa系统的开发来说的,其中后台的代码分三层来写:action层,service层,DAO层。其中action层的代码负责controller的角色,负责控制转发或是拦截,service层的代码主要就是进行业务的拼装,将DAO层的返回数据,根据业务的需求,进行组装,达到我们想要的业务逻辑,DAO层的代码主要就是纯的和数据库打交道,代码在这一层进行各种的数据上面的增删改查,所以里面会有很多的sql语句了等等。在service层的业务拼装过程中,我们并不需要关心DAO层的代码具体要怎么的去进行数据库操作的,我们直接来调用即可,并且如果我们要进行DAO层或者是service层的代码改动,只要保证接口一致,并不需要关心到底各层分别作了什么改动,这就是我们软件开发过程当中,如今很流行的解耦和,低耦合。我觉得这个项目体会,应该能很好的说明面向对象的特性。(看面试官还可以,挺满意!)
2、类的权限限制符:
public:共有成员,类外可以访问的;
private:私有成员,只有类内成员可以访问,当然设置为friend的成员也可以访问;
protected:类外不可访问,但是此类的派生类可以访问,当然友元函数(friend)也可以访问。
3、类和结构体的区别:(这个问题,今年的校招我碰到了!)
用struct声明的类,如果对成员不作private或者public的声明,系统将其默认为public;而class定义的类,如果不作这些声明,系统将其成员默认为是private的。
相关推荐
《中国高等院校计算机基础教育课程体系规划教材:C++程序设计(第2版)》作者谭浩强深入调查了大学的程序设计课程的现状和发展趋势,参阅了国内外数十种有关C++的教材,认真分析了读者在学习中的困难和认识规律,设计了...
本资源为谭浩强C++程序设计PDF版本,资源分为章节介绍,提取了更加精炼的内容,资料中的源码资源可以在搜索“C++程序设计(谭浩强版+源码)”
C++程序设计-谭浩强-清晰版完整书签 封面 -24 目录 -10 第1篇 基本知识 1 第1章 C++的初步知识 3 1.1 从C到C++ 3 1.2 最简单的C++程序 5 1.3 C++程序的构成和书写形式 12 1.4 C++程序的编写和实现 13 1.5 关于...
C++程序设计_谭浩强·答案 C++程序设计_谭浩强·答案C++程序设计_谭浩强·答案
C++程序设计-谭浩强-PDF电子书,C++入门参考书籍不错的选择!
C++程序设计_谭浩强_PDF电子书,入门的好书
《C++程序设计》谭浩强完整版答案 史上最完整版本 讲解最详细
《C++面向对象程序设计答案》-第五章--谭浩强-经典实例,包含继承 多态,源代码
《C++面向对象程序设计》习题答案-第二章--谭浩强-清华大学出版社.docx
学过c++的人对谭浩强的大名一定不陌生,我觉得他是在国内真正写书的人,花了心思的,而且为学生着想,浅显易懂,不像国内计算机的很多书,东抄两句,西抄两句,一点都没有自己的思路,而且很难懂,为了名利而写书
C++程序设计_谭浩强_2004年版C++程序设计_谭浩强_2004年版C++程序设计_谭浩强_2004年版
C++程序设计(谭浩强).pdf C++程序设计(谭浩强).pdf C++程序设计(谭浩强).pdf
完整的C++程序设计(谭浩强版)课件ppt,是个教学课件!课件!
C++程序设计谭浩强PDF完整版。个人已认真阅读过,很不错
谭浩强--C语言程序设计(第二版)习题答案
C++程序设计 - 谭浩强·清华大学 PDF高清版
本文档适合广大的一线教师及有需要的C++小白,有需要的拿去,不谢!
C++程序设计(谭浩强完整版) C语言的主要特点是: C语言是一种结构化的程序设计语言,语言本身简洁、使用灵活方便。既适用于设计和编写大的系统程序,又适用于编写小的控制程序,也适用科学计算。