![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
c&c++
文章平均质量分 73
small_sea
这个作者很懒,什么都没留下…
展开
-
C++中的预处理
在C++的历史发展中,有很多的语言特征(特别是语言的晦涩之处)来自于C语言,预处理就是其中的一个。C++从C语言那里把C语言预处理器继承过来(C语言预处理器,被Bjarne博士简称为Cpp,不知道是不是C Program Preprocessor的简称)。二、常见的预处理功能:预处理器的主要作用就是把通过预处理的内建功能对一个资源进行等价替换,最常见的预处理有:文件包含,条件编译、布局控制和宏替转载 2009-04-25 17:23:00 · 377 阅读 · 0 评论 -
C++从零开始(九)——何谓结构
C++从零开始(九) ——何谓结构 前篇已经说明编程时,拿到算法后该干的第一件事就是把资源映射成数字,而前面也说过“类型就是人为制订的如何解释内存中的二进制数的协议”,也就是说一个数字对应着一块内存(可能4字节,也可能20字节),而这个数字的类型则是附加信息,以告诉编译器当发现有对那块内存的操作语句(即某种操作符)时,要如何编写机器指令以实现那个操作。比如两个char类型的数字进行转载 2009-06-05 00:00:00 · 383 阅读 · 0 评论 -
C++从零开始(十)——何谓类
C++从零开始(十) ——何谓类 前篇说明了结构只不过是定义了内存布局而已,提到类型定义符前还可以书写class,即类型的自定义类型(简称类),它和结构根本没有区别(仅有一点小小的区别,下篇说明),而之所以还要提供一个class,实际是由于C++是从C扩展而成,其中的class是C++自己提出的一个很重要的概念,只是为了与C语言兼容而保留了struct这个关键字。不过通过前面括号中转载 2009-06-05 00:01:00 · 425 阅读 · 0 评论 -
C++从零开始(十一)上篇——类的相关知识
C++从零开始(十一)上篇 ——类的相关知识 前面已经介绍了自定义类型的成员变量和成员函数的概念,并给出它们各自的语义,本文继续说明自定义类型剩下的内容,并说明各自的语义。权限 成员函数的提供,使得自定义类型的语义从资源提升到了具有功能的资源。什么叫具有功能的资源?比如要把收音机映射为数字,需要映射的操作有调整收音机的频率以接收不同的电台;调整收音机的音量;打开和关闭转载 2009-06-05 00:02:00 · 551 阅读 · 0 评论 -
C++从零开始(十一)中篇——类的相关知识
C++从零开始(十一)中篇 ——类的相关知识 本文关于虚函数的论述有一处严重错误,关于此错误已在本文的评论中说明,对此造成的不便,在此深感抱歉。 由于篇幅限制,本篇为《C++从零开始(十一)》的中篇,说明多重继承、虚继承和虚函数的实现方式。多重继承 这里有个有趣的问题,如下: struct A { long a, b, c; char d; }; st转载 2009-06-05 00:03:00 · 301 阅读 · 0 评论 -
C++从零开始(一)——何谓编程
C++从零开始(一) ——何谓编程 引言 曾经有些人问我问题,问得都是一些很基础的问题,但这些人却已经能使用VC编一个对话框界面来进行必要的操作或者是文档/视界面来实时接收端口数据并动态显示曲线(还使用了多线程技术),却连那些基础的问题都不清楚,并且最严重的后果就是导致编写出拙劣的代码(虽然是多线程,但真不敢恭维),不清楚类的含义,混杂使用各种可用的技术来达到目的(连用异常代替选转载 2009-06-04 11:27:00 · 539 阅读 · 0 评论 -
C++从零开始(五)——何谓指针
C++从零开始(五) ——何谓指针 本篇说明C++中的重中又重的关键——指针类型,并说明两个很有意义的概念——静态和动态。数组 前面说了在C++中是通过变量来对内存进行访问的,但根据前面的说明,C++中只能通过变量来操作内存,也就是说要操作某块内存,就必须先将这块内存的首地址和一个变量名绑定起来,这是很糟糕的。比如有100块内存用以记录100个工人的工资,现在要将每个转载 2009-06-04 23:54:00 · 321 阅读 · 0 评论 -
C++从零开始(六)——何谓语句
C++从零开始(六) ——何谓语句 前面已经说过程序就是方法的描述,而方法的描述无外乎就是动作加动作的宾语,而这里的动作在C++中就是通过语句来表现的,而动作的宾语,也就是能够被操作的资源,但非常可惜地C++语言本身只支持一种资源——内存。由于电脑实际可以操作不止内存这一种资源,导致C++语言实际并不能作为底层硬件程序的编写语言(即使是C语言也不能),不过各编译器厂商都提供了自己的转载 2009-06-04 23:55:00 · 344 阅读 · 0 评论 -
C++从零开始(八)——C++样例一
C++从零开始(八) ——C++样例一 前篇说明了函数的部分实现方式,但并没有说明函数这个语法的语义,即函数有什么用及为什么被使用。对于此,本篇及后续会零散提到一些,在《C++从零开始(十二)》中再较详细地说明。本文只是就程序员的基本要求——拿得出算法,给得出代码——给出一些样例,以说明如何从算法编写出C++代码,并说明多个基础且重要的编程概念(即独立于编程语言而存在的概念)。转载 2009-06-04 23:58:00 · 462 阅读 · 0 评论 -
C++从零开始(十一)下篇——类的相关知识
C++从零开始(十一)下篇 ——类的相关知识 由于篇幅限制,本篇为《C++从零开始(十一)》的下篇,讨论多态性及一些剩下的问题。虚的含义 本文的中篇已经介绍了虚的意思,就是要间接获得,并且举例说明电视机的频道就是让人间接获得电视台频率的,因此其从这个意义上说是虚的,因为它可能操作失败——某个频道还未调好而导致一片雪花。并且说明了间接的好处,就是只用编好一段代码(按5频转载 2009-06-05 00:05:00 · 401 阅读 · 0 评论 -
C++从零开始(十二)——何谓面向对象编程思想
C++从零开始(十二) ——何谓面向对象编程思想 前面已经说明了C++中最重要的概念——类,并且介绍了大部分和类相关的知识,至此,已经可以开始做些编程方面比较高级的应用——设计程序,而不再只是将算法变成代码。要说明如何设计程序,有必要先了解何谓编程思想。 编程思想 编程,即编写程序,而之前已经说过,程序就是方法的描述,那么编程就是编写方法的描述。我知道如何到人民公转载 2009-06-05 00:06:00 · 2055 阅读 · 0 评论 -
C++从零开始(四)——赋值操作符
C++从零开始(四) ——赋值操作符 本篇是《C++从零开始(二)》的延续,说明《C++从零开始(二)》中遗留下来的关于表达式的内容,并为下篇指针的运用做一点铺垫。虽然上篇已经说明了变量是什么,但对于变量最关键的东西却由于篇幅限制而没有说明,下面先说明如何访问内存。赋值语句 前面已经说明,要访问内存,就需要相应的地址以表明访问哪块内存,而变量是一个映射,因此变量名就相转载 2009-06-04 23:53:00 · 396 阅读 · 0 评论 -
C++从零开始(七)——何谓函数
C++从零开始(七) ——何谓函数 本篇之前的内容都是基础中的基础,理论上只需前面所说的内容即可编写出几乎任何只操作内存的程序,也就是本篇以后说明的内容都可以使用之前的内容自己实现,只不过相对要麻烦和复杂许多罢了。 本篇开始要比较深入地讨论C++提出的很有意义的功能,它们大多数和前面的switch语句一样,是一种技术的实现,但更为重要的是提供了语义的概念。所以,本篇开始将主要转载 2009-06-04 23:56:00 · 316 阅读 · 0 评论 -
C++从零开始(三)——何谓变量
C++从零开始(三) ——何谓变量 本篇说明内容是C++中的关键,基本大部分人对于这些内容都是昏的,但这些内容又是编程的基础中的基础,必须详细说明。数字表示 数学中,数只有数值大小的不同,绝不会有数值占用空间的区别,即数学中的数是逻辑上的一个概念,但电脑不是。考虑算盘,每个算盘上有很多列算子,每列都分成上下两排算子。上排算子有2个,每个代表5,下排算子有4个,每个代表转载 2009-06-04 23:52:00 · 392 阅读 · 0 评论 -
C++从零开始(二)——何谓表达式
C++从零开始(二) ——何谓表达式 本篇是此系列的开头,在学英语时,第一时间学的是字母,其是英语的基础。同样,在C++中,所有的代码都是通过标识符(Identifier)、表达式(Expression)和语句(Statement)及一些必要的符号(如大括号等)组成,在此先说明何谓标识符。标识符 标识符是一个字母序列,由大小写英文字母、下划线及数字组成,用于标识。标识转载 2009-06-04 23:50:00 · 518 阅读 · 0 评论 -
高质量C++/C编程指南
转载 2009-04-27 21:23:00 · 255 阅读 · 0 评论 -
面向对象的三个基本特征
面向对象的三个基本特征(讲解)面向对象的三个基本特征是:封装、继承、多态。封装封装最好理解了。封装是面向对象的特征之一,是对象和类概念的主要特性。封装,也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏。继承面向对象编程 (OOP) 语言的一个主要功能就是“继承”。继承是指这样一种能力:它可以使用现有类的所有功能转载 2009-05-15 12:58:00 · 377 阅读 · 0 评论 -
C/C++基础知识:函数指针和指针函数的基本概念
转载 2009-05-19 11:12:00 · 272 阅读 · 0 评论 -
C/C++基础知识:typedef用法小结
转载 2009-05-19 11:13:00 · 348 阅读 · 0 评论 -
C++ 类访问控制(public/protected/private)
C++中 public,protected, private 访问标号小结第一:private, public, protected 访问标号的访问范围。private:只能由1.该类中的函数、2.其友元函数访问。不能被任何其他访问,该类的对象也不能访问。protected:可以被1.该类中的函数、2.子类的函数、以及3.其友元函数访问。但不能被该类的对象访问。pub转载 2009-05-15 10:59:00 · 293 阅读 · 0 评论 -
C语言宏定义##连接符和#符的使用
C语言中如何使用宏C(和C++)中的宏(Macro)属于编译器预处理的范畴,属于编译期概念(而非运行期概念)。下面对常遇到的宏的使用问题做了简单总结。 关于#和##在C语言的宏中,#的功能是将其后面的宏参数进行字符串化操作(Stringfication),简单说就是在对它所引用的宏变量通过替换后在其左右各加上一个双引号。比如下面代码中的宏: #define WARN_IF(EXP)转载 2009-05-18 18:53:00 · 611 阅读 · 0 评论 -
C 语言宏定义技巧
学好C语言,漂亮的宏定义很重要,使用宏定义可以防止出错,提高可移植性,可读性,方便性 等等。下面列举一些成熟软件中常用得宏定义......1,防止一个头文件被重复包含 #ifndef COMDEF_H #define COMDEF_H //头文件内容 #endif 2,重新定义一些类型,防止由于各种平台和编译器的不同,而产生的类型字节数差异,方便移转载 2009-05-18 19:01:00 · 376 阅读 · 0 评论 -
高质量c++(const成员函数)
const 成员函数任何不会修改数据成员的函数都应该声明为const 类型。如果在编写const 成员函数时,不慎修改了数据成员,或者调用了其它非const 成员函数,编译器将指出错误,这无疑会提高程序的健壮性。以下程序中,类stack 的成员函数GetCount 仅用于计数,从逻辑上讲GetCount 应当为const 函数。编译器将指出GetCount 函数中的错误。class Stack{p转载 2009-05-18 21:41:00 · 291 阅读 · 0 评论 -
主要C++流派,看看你是哪一流
1. 经典C++流:类是核心,例程多用C Runtime的,很少用模版,一般是正统教育的结果。2. 古典C流:基本上当C用,偶尔用用对象,不使用异常,喜欢怀旧。3. MFC流:秉承MFC的风格,主要使用MFC/ATL对象和Win32 API,不喜欢STL,用很多的宏把IDE的语法提示模块折磨到崩溃。4. Portable流:以C Runtime和STL为主要工具,使用类和模版,不跨平台毋宁死。5.转载 2009-05-17 17:20:00 · 348 阅读 · 0 评论 -
__stdcall约定
如果通过VC++编写的DLL欲被其他语言编写的程序调用,应将函数的调用方式声明为__stdcall方式,WINAPI都采用这种方式,而C/C++缺省的调用方式却为__cdecl。__stdcall方式与__cdecl对函数名最终生成符号的方式不同。若采用C编译方式(在C++中需将函数声明为extern "C"),__stdcall调用约定在输出函数名前面加下划线,后面加“@”符号和参数的字节数,形转载 2009-05-19 10:10:00 · 581 阅读 · 0 评论 -
C/C++语法知识:typedef struct 用法 作用
C/C++语法知识:typedef struct 用法详解 第一篇:typedef struct与struct的区别1. 基本解释typedef为C语言的关键字,作用是为一种数据类型定义一个新名字。这里的数据类型包括内部数据类型(int,char等)和自定义的数据类型(struct等)。在编程中使用typedef目的一般有两个,一个是给变量一个易记且意义明确的新名字,另一个是简转载 2009-06-03 19:32:00 · 1922 阅读 · 1 评论 -
语义的需要
见过不少拙劣的设计,不少程序员都只为最终功能的实现,完全不管语义的需要,编写出低劣的代码,几乎没有语义这个概念,而我认为这是一个程序员的修养问题,对于一个程序员其具有深远的意义。 语义就是语言的意义,在电脑编程方面来说就是对内存操作及机器指令执行的解释。它表现出程序编写人逻辑思维的清晰与否,不仅仅应用在电脑编程方面,还可往社会上推,也就是所谓的权责明确。就系统设计员的角度来说,语义表示各个转载 2009-06-04 12:04:00 · 560 阅读 · 0 评论 -
指针及其语义和运用
指针及其语义和运用 本篇是《C++从零开始》系列的附篇。因友人一再认为《C++从零开始》系列中对指针的阐述太过简略,而提出的各个概念又杂七混八,且关于指针这一C++中的重要概念的运用少之又少,故本篇重点说明在《C++从零开始》系列中提出的数字、地址、指针等基础概念,并给出指针的语义,说明指针和数组的关系,阐述多级指针、多维数组、函数指针、数组指针、成员指针的语义及各自的运用。数字、操转载 2009-06-05 00:08:00 · 539 阅读 · 0 评论