林锐:5 C++/C程序的基本概念】的更多相关文章

2.1 空行 规则1:在每个类声明之后,每个函数定义结束之后加空行. 规则2:在某个函数体内,相关的不加空行,不相关的加空行. // 空行 void Function1(-) { - } // 空行 void Function2(-) { - } // 空行 void Function3(-) { - } .csharpcode, .csharpcode pre { font-size: small; color: black; font-family: consolas, "Courier N…
推荐-高质量C++/C编程指南(林锐) 版本/状态 作者 参与者 起止日期 备注 V 0.9 草稿文件 林锐   2001-7-1至 2001-7-18 林锐起草 V 1.0 正式文件 林锐   2001-7-18至 2001-7-24 朱洪海审查V 0.9, 林锐修正草稿中的错误                     目录 前言... 6 第1章文件结构... 11 1.1 版权和版本的声明... 11 1.2 头文件的结构... 12 1.3 定义文件的结构... 13 1.4 头文件的作…
gdb调试:观察点,断点,事件捕捉点.step 进入函数,next 跳过函数,until 跳出循环,finish 结束函数 林锐:书后试题 & c++的对象模型图 看了二叉树的非递归遍历, 链表的操作, ZT 设计模式六大原则(1):单一职责原则 ZT 设计模式六大原则(2):里氏替换原则 所有引用基类的地方必须能透明地使用其子类的对象 /* 递归求一个数组的和 (2010-04-11 15:34:25)转载▼ 标签: 杂谈 分类: C—Programming */ int sum(int a[…
#include <iostream> #include <string.h> using namespace std; class String { private: int size; char *ptr; public: String():size(0),ptr(new char('\0')) { cout << "default\n"; } String(const String &s):size(s.size) { cout <…
5.1.1 main 不能重载 不能内联 不能定义为static 不能取其地址 不能由用户直接调用 5.1.3内部名称 struct Sample_1 { int count; }; struct Sample_2 { int count; }; 区分两个struct的同名成员count:“通过它们各自的对象和成员标识符就可以区分”,但是这只是源代码级或者说是形式上的区别. 对于语言来说,这两个同名成员代表两块不同的内存单元,而名字则是引用这两块内存单元的别名,因此为了区分开不同的内存单元就必须…
在微信开放平台基础高级产品经理林兴演讲的当场,他爆料了微信小程序一个轰动性新能力:小程序很快可以支持各个 App 直接打开小程序!没错,你没有听错,简单来说,在不久以后,所有的 App 里面都可以看到微信小程序的身影了.它会是配置在其它 App 里的基础能力,也是微信广布在线上各个角落的海量据点,跟微信线下的二维码.小程序码没有本质区别,都将变成一种普及化的「物料」资源,一类入口,一个微信全面串联移动端应用的大设计! 微信开放平台基础高级产品经理林兴在2018中国“互联网+”数字经济峰会小程序分…
六年前,我刚热恋“面向对象”(Object-Oriented)时,一口气记住了近十个定义.六年后,我从几十万行程序中滚爬出来准备写点心得体会时, 却无法解释什么是“面向对象”,就象说不清楚什么是数学那样.软件工程中的时髦术语“面向对象分析”和“面向对象设计”,通常是针对“需求分析”和“系统 设计”环节的.“面向对象”有几大学派,就象如来佛.上帝和真主用各自的方式定义了这个世界,并留下一堆经书来解释这个世界. 有些学者建议这样找“对象”:分析一个句子的语法,找出名词和动词,名词就是对象,动词则是对…
指针参数是如何传递内存的 如果函数的参数是一个指针,不要指望用该指针去申请动态内存.示例7-4-1中,Test函数的语句GetMemory(str, 200)并没有使str获得期望的内存,str依旧是NULL,为什么? void GetMemory(char *p, int num) { p = (char *)malloc(sizeof(char) * num); } void Test(void) { char *str = NULL; GetMemory(str, 100);    //…
2015/12/10补充: 当我们需要给一个数组返回所赋的值的时候,我们需要传入指针的指针.当我们只需要一个值的时候,传入指针即可,或者引用也可以. 结构大致如下: char* p = (char*)malloc(sizeof(char)*num); while() { func(char** p); } free(p); void func(char**p) { char buffer[num] = {0}; for(int i = 0; i < num; ++i) (*p)[i] = buf…
5.1  为什么需要常量 1)为了便于用户理解,增加程序的可读性. 2)在程序的很多地方都用到同一个常量,用某一个宏常量来定义可以减少错误. 规则:尽可能的使用含义直观明确的常量来表示程序中多次出现的数字或者字符串 5.2  #define  vs   const      一般在C里面一般用#define,而在C++中,更喜欢用const,因为const有很多类型.而define没有类型检查这一说,只是单纯的进行字符替代. 规则:C++中,程序一般使用const常量而不使用宏常量,即const…
4.1 运算符的优先级   规则:如果代码行中的运算符比较多,可用括号确定操作顺序.if((a|b)&&(a&c)) 4.2   复合表达式 规则:不要编写太复杂的复合表达式 规则:不要有多用途的复合表达式   d = (a = b + c) + r ; 不可取. 规则:不要把程序中的复合表达式与真正的数学表达式相混淆 4.3  if语句 本节以"与零值比较"为例,展开分析. 1)布尔变量与零值比较 规则:不可将布尔变量直接与TRUR.FALSE.或者1 . 0…
  3.1  共性规则 规则:标识符应该直观且可以拼读,可进行英语翻译. 规则:标识符的长度需要控制好,不应该太长. 规则:命名规则应该同操作系统或者开发工具等保持一致,比如大小写混用.AddChar(); 规则:程序中最好不要仅靠大小写区分的变量. X 与 x 规则:程序中不要出现同名的变量. 规则:变量的名字可以是 n 或者 adj + n:   value  oddvalue 规则:函数的名字可以是 v 或者 v + n;        DrawBox(): 规则:可用反义词命名互斥的两个…
第一章  文件结构       C/C++程序通常由两个文件组成,一个文件保存程序的声明,称为头文件,.h 文件.一个保存程序的实现,称为定义文件.c文件. 1.1 版权与版本的声明 版权和版本的声明位于头文件和定义文件的开头(参见示例1-1),主要内容有: (1)版权信息. (2)文件名称,标识符,摘要. (3)当前版本号,作者/修改者,完成日期. (4)版本历史信息. 实例如下: /* * Copyright (c) 2001,上海贝尔有限公司网络应用事业部 * All rights res…
函数设计最重要的无外乎两个方面,一个是函数的接口设计一个是内部实现的一些规则. 在C语言中,函数的参数和返回值的传递方式分为两种: 值传递与指针传递.而C++中,多了一个引用传递. 引用传递有些像指针传递,但使用方式却像值传递. 6.1   参数的规则 规则:参数的书写要规范,不用丢三落四. 规则:参数命名要恰当,顺序要合理. 比如说,拷贝函数,一般是目的参数放前面,源参数放在后面. 一般,我们这样写 void  StringCopy(char *strDestiantion,  char *s…
一.组件生命周期:一个组件从创建开始到使用中最后被销毁的过程 ---onLoad事件:组件(创建成功并且加载完成)触发一次 (1)当此事件触发发送请求获取数据 (2)获取其他组件传递数据(options) ---onReady 组件渲染成功   触发一次 ---onShow   组件显示完成   触发多次 ---onHide     组件隐藏完成   触发多次 ---onUnload 组件销毁          触发一次(谨慎使用) 二.小程序云开发(重点)----出错非常 小程序团队+腾讯云合…
FileNameFilter过滤器的使用和Lambda优化程序 public class Demo02Filter { public static void main(String[] args) { File file = new File("c:\\abc"); getAllFile(file); } /* 定义一个方法,参数传递File类型的目录 方法中对目录进行遍历 */ public static void getAllFile(File dir){ //传递过滤器对象 使用…
一.关键字.引用.直接量.变量.长量概念 1.关键字 java内部定义的java语言专用的单词,这些单词具有特殊含义,开发人员在定义自己声明的名称时,应该避开这些专用的单词.这些专用的单词也就称之为java关键字. java共53个关键字,另外const,goto属于预留关键词,也不要使用. 2.标识符 用户自定义的名称就称之为标识符. 标识符的定义需要遵循的规则如下:…
引言 首先声明,不要再问LZ谁是林萧,林萧就是某著名程序员小说的主角名字. 写这篇文章的目的其实很简单,算是对之前LZ一篇文章的补充和完善. 之前LZ写过一篇<回答阿里社招面试如何准备,顺便谈谈对于Java程序猿学习当中各个阶段的建议>,那篇文章LZ主要介绍了如何应对社招面试,以及如何进行Java学习. 文章的反响还不错,不少猿友都感叹,"如果早看到这篇文章,说不定我已经成大神了." 但是LZ只能很遗憾的告诉你,LZ那篇文章并不能让你成为大神,只能让你成为一个比大部分人优秀…
一个简单的问题:.c和.h文件的区别 学了几个月的C语言,反而觉得越来越不懂了.同样是子程序,可以定义在.c文件中,也可以定义在.h文件中,那这两个文件到底在用法上有什么区别呢? 2楼: 子程序不要定义在.h中. 函数定义要放在.c中,而.h只做声明.否则多引用几次,就会发生函数重复定义的错误. 3楼: .h只做声明,编译后不产生代码 4楼:  这样做目的是为了实现软件的模块化 使软件结构清晰,而且也便于别人使用你写的程序 纯粹用 C 语言语法的角度,你当然可以在 .h 中放任何东西,因为 #i…
内容简介 1.第一部分第三课:第一个C++程序 2.第一部分第四课预告:内存的使用 第一个C++程序 经过上两课之后,我们已经知道了什么是编程,编程的语言,编程的必要软件,C++是什么,我们也安装了适合自己的一个IDE(Integrated Development Environment,就是“集成开发环境”的意思). 如果你真的要开始在Linux下编写程序,除了使用IDE之外(IDE集成了文本编辑器,编译器,调试器,运行程序等),也可以选择另一种难一些的方式:自己用某一种文本编辑器来编写C++…
原文地址:qt ui程序使用Linux的文件操作open.close 作者:kjpioo 提出这个问题是因为在qt的QWidget类型的对象中,close()函数会和QWidget::close()冲突,如果在类函数实现时直接用close(),在程序编译时会提示提示错误(具体什么错误不记得了). 错误原因是QWidget::close()与stdio.h中的文件关闭标准函数close()产生了歧义.所以可以参考下文链接中的解决方案. http://bytes.com/topic/c/answer…
下面的这些要点是对所有的C++程序员都适用的.我之所以说它们是最重要的,是因为这些要点中提到的是你通常在C++书中或网站上无法找到的.如:指向成员的指针,这是许多资料中都不愿提到的地方,也是经常出错的地方,甚至是对一些高级的C++程序员也是如此. 这里的要点不仅仅是解释怎样写出更好的代码,更多的是展现出语言规则里面的东西.很显然,它们对C++程序员来说是永久的好资料.我相信这一篇文章会使你收获不小. 首先,我把一些由不同层次的C++程序员经常问的问题归到一起.我惊奇的发现有很多是有经验的程序员都…
最近在找工作,遇到了一些面试题,很惭愧的是很多都没答上来. 现在把一些问题总结一下,算是记录一下面试的经历吧.以后有空简单地回答一下, 同时也欢迎各位同仁解答,共同学习一下吧!   一.嵌入式C语言面试回忆 主观题:1.在嵌入式系统中,volitate的作用是什么?并给出三个不同的例子. 答:一个定义为volatile的变量是说这变量可能会被意想不到地改变,这样,编译器就不会去假设这个变量的值了.精确地说就是,优化器在用到这个变量时必须每次都小心地重新读取这个变量的值,而不是使用保存在寄存器里的…
wx-gesture-lock  微信小程序的手势密码 WXCustomSwitch 微信小程序自定义 Switch 组件模板 WeixinAppBdNovel 微信小程序demo:百度小说搜索 shitoujiandaobu 小程序:石头剪刀布(附代码说明) audiodemo 微信小程序开发之视频播放器 Video 弹幕 弹幕颜色自定义 star 微信小程序开发之五星评分 switchCity 微信小程序开发之城市选择器 城市切换 huadong_del  微信小程序滑动删除效果 jianh…
微信小程序demo:足球,赛事分析 小程序简易导航 小程序demo:办公审批 小程序Demo:电魔方 小程序demo:借阅伴侣 微信小程序demo:投票 微信小程序demo:健康生活 小程序demo:文章列表demo 微商城(含微信小程序)完整源码+配置指南 微信小程序Demo:一个简单的工作系统 微信小程序Demo:用于聚会的小程序 微信小程序Demo:Growth 是一款专注于Web开发者成长的应用,… 微信小程序Demo: Music-Player 微信小程序Demo:团贷网(投资) 微信…
微信小程序demo:足球,赛事分析 小程序简易导航 小程序demo:办公审批 小程序Demo:电魔方 小程序demo:借阅伴侣 微信小程序demo:投票 微信小程序demo:健康生活 小程序demo:文章列表demo 微商城(含微信小程序)完整源码+配置指南 微信小程序Demo:一个简单的工作系统 微信小程序Demo:用于聚会的小程序 微信小程序Demo:Growth 是一款专注于Web开发者成长的应用,… 微信小程序Demo: Music-Player 微信小程序Demo:团贷网(投资) 微信…
wx-gesture-lock  微信小程序的手势密码 WXCustomSwitch 微信小程序自定义 Switch 组件模板 WeixinAppBdNovel 微信小程序demo:百度小说搜索 shitoujiandaobu 小程序:石头剪刀布(附代码说明) audiodemo 微信小程序开发之视频播放器 Video 弹幕 弹幕颜色自定义 star 微信小程序开发之五星评分 switchCity 微信小程序开发之城市选择器 城市切换 huadong_del  微信小程序滑动删除效果 jianh…
本文摘自左潇龙博客,原文出处:http://www.cnblogs.com/zuoxiaolong/p/life54.html 引言 首先声明,不要再问LZ谁是林萧,林萧就是某著名程序员小说的主角名字. 写这篇文章的目的其实很简单,算是对之前LZ一篇文章的补充和完善. 之前LZ写过一篇<回答阿里社招面试如何准备,顺便谈谈对于Java程序猿学习当中各个阶段的建议>,那篇文章LZ主要介绍了如何应对社招面试,以及如何进行Java学习. 文章的反响还不错,不少猿友都感叹,"如果早看到这篇文章…
    首页 最新文章 IT 职场 前端 后端 移动端 数据库 运维 其他技术 - 导航条 - 首页 最新文章 IT 职场 前端 - JavaScript - HTML5 - CSS 后端 - Python - Java - C/C++ - PHP - .NET - Ruby - Go 移动端 - Android - iOS 数据库 运维 - Linux - UNIX 其他技术 - Git - 机器学习 - 算法 - 测试 - 信息安全 - Vim     伯乐在线 > 首页 > 所有文章 &…
近来升级电脑又一次做了系统.再次面临这linux系统下的各种校园网上网限制. 我在这里採用了mentohust来完毕锐捷认证. 这里我们选择Mentohust取代锐捷. Mentohust 是由华中科技大学首先是在Linux系统下开发出来,而后扩展到支持Windows.Linux.Mac OS下的锐捷认证的程序(附带支持赛尔认证),眼下兼容Windows.Linux和MacOS全部主流版本号,完美取代锐捷认证.   第一步:在http://code.google.com/p/mentohust/…