C语言/C++ 教程

C语言/C++ 教程:包含了所有代写案例以及部分答案

  • 本文具体先容C语言中trim的实现 描写 本身用ATL写了个COM,不支持MFC,所以无法用CString,但支持C编码,碰着字符串(字符数组),想去掉字符串中的空格,C下没有TRIM函数,找又没找到,几行代码本身写吧。往后各人万一碰着用着也利便。 说明 1.seps是需要去除的字符数组,可以有几个字符,也可以一个。这里是空格,最常用的。 2.参数也很简朴,第一个是功效数组指针,第二个是原字符数组指针,第三个是需要去掉的字符数组指针。返回的是功效数组指针。 #include "stda … 继续阅读“C语言中trim的实现”

    :
  • 副标题#e# Turbo C提供了很是富厚的图形函数,所有图形函数的原型均在graphics. h中,本节主要先容图形模式的初始化、独立图形措施的成立、根基图形成果、图形窗口以及图形模式下的文本输出等函数。别的,利用图形函数时要确保有显示器图形驱动措施*BGI,同时将集成开拓情况Options/Linker中的Graphics lib选为on,只有这样才气担保正确利用图形函数。 1. 图形模式的初始化 差异的显示器适配器有差异的图形判别率。等于同一显示器适配器,在差异模式下也有差异判别率。因此, … 继续阅读“C语言图形函数(1)”

    :
  • 副标题#e# 在做字符串、文本操纵时,我们时常会需要在wchar_t *和char *之间做转换或搭桥。直 接用API,参数太多不容易记着,经常要查文档,挥霍不少时间。为了本身利便,对简朴的转 换写了一个简朴的转换包装类。下次可能用得着,帖代码做为生存。 顺便提一下:发明有个对象很好用,std::stringstream系列 (#include < sstream >);其实,流式操纵用起来都很happy,尚有iostream、fstream;尚有TCP的数据也是流 式的。 头文件: … 继续阅读“简朴字符串转换”

    :
  • 副标题#e# 进修 C++ 的同志不知道有没有和我一样碰着过这样的狐疑:C++中的虚函数到底怎么实现的?在各类担任干系中,虚函数表的布局到底是什么样的?曾经我是很想虽然,但是厥后在利用ATL的进程中,我发明并不是我想的那样。各人知道,操作C++语言自己的特性举办COM编程虽然是很利便的事,可是你就得随时随地都知道那虚函数内外头到底是些什么对象。讲C++语法的书没有义务汇报你C++发生的虚函数表是什么样的,这就是头痛的地址。 自已做试验是件很快乐的事,我很愿意这么做。 首先写个函数,作为我们尝试的 … 继续阅读“C++中的虚函数的实现要领”

    :
  • 许多人学C语言很长一段时间了,还不知C毕竟醒目什么,觉得进修c语言没什么用,纯粹是为了应付学校的测验.更有人说"学C语言?别做如此愚蠢的行为了!赶紧学C++吧!"这种观点是差池的,不该该把c跟c++之间划起绝对的边界,过度垂青c++而把c贬得一无是处,这是很单方面的.C++成果固然强大,但它究竟是c的"超集",在c++里有哪一处找不到c的影子呢?没有c的支持,c++只能是无本之木。 一般环境下,c++编程方法编写的措施源代码量小,但编译后的代码量较大,运行 … 继续阅读“C语言初学者的狐疑-如何由dos向windows转变”

    :
  • 副标题#e# 1.内存分派方法 内存分派方法有三种: [1]从静态存储区域分派。内存在措施编译的时候就已经分派好,这块内存在措施的整个 运行期间都存在。譬喻全局变量,static变量。 [2]在栈上建设。在执行函数时,函数内局部变量的存储单位都可以在栈上建设,函数执 行竣事时这些存储单位自动被释放。栈内存分派运算内置于处理惩罚器的指令会合,效率很高, 可是分派的内存容量有限。 [3]从堆上分派,亦称动态内存分派。措施在运行的时候用malloc或new申请任意几多的内 存,措施员本身认真在何时用f … 继续阅读“C/C++措施的内存分派方法”

    :
  • 副标题#e# 单例模式也称为单件模式、票据模式。利用单例模式,担保一个类仅有一个实例,并提供一个会见它的全局会见点,该实例被所有措施模块共享。有许多处所需要这样的成果模块,如系统的日志输出等。 单例模式有很多种实现要领,在C++中,甚至可以直接用一个全局变量做到这一点,但这样的代码显得很不优雅。《设计模式》一书中给出了一种很不错的实现,界说一个单例类,利用类的私有静态指针变量指向类的独一实例,并用一个公有静态要领获取该实例。如下面的类界说: class CSingleton:   {    // … 继续阅读“C++中单例模式工具的释放节制阐明”

    :
  • 副标题#e# 1 根基表明 extern可以置于变量可能函数前,以标示变量可能函数的界说在此外文件中,提示编译器碰着此变量和函数时在其他模块中寻找其界说。 别的,extern也可用来举办链接指定。 2 问题:extern 变量 在一个源文件里界说了一个数组: char a[6]; 在别的一个文件里用下列语句举办了声明: extern char *a; 请问,这样可以吗? 谜底与阐明: 1)、不行以,措施运行时会汇报你犯科会见。原因在于,指向范例T的指针并不等价于范例T的数组。extern cha … 继续阅读“C语言的extern声明辨析”

    :
  • 副标题#e# 一个巨大的工程凡是可以解析成一组小任务的荟萃,完成这些小任务意味着整个工程的完成。譬喻,汽车装配工程可解析为以下任务:将底盘放上装配线,装轴,将座位装在底盘上,上漆,装刹车,装门等等。任务之间具有先后干系,譬喻在装轴之前必需先将底板放上装配线。任务的先后顺序可用有向图暗示——称为极点勾当( Activity On Vertex, AOV)网络。有向图的极点代表任务,有向边(i, j) 暗示先后干系:任务j 开始前任务i 必需完成。图1 – 4显示 … 继续阅读“c语言算法 – 贪婪算法 – 拓扑排序”

    :
  • 与内存泄露对比,C++最令人头痛的问题是内存越界,而内存越界许多环境下是由于悬挂指针引起的。 假设一个指针变量: Object * ptr; 利用ptr时,我们除了要判定ptr是否为0以外,还要猜疑它指向的工具是否有效,是不是已经在此外处所被销毁了。我们但愿当它指向的工具被销毁时,ptr被自动置为0。 显然,C++没有这种机制,可是,可以借助于boost::weak_ptr做到这一点。 inline void null_deleter(void const *) { } class X { pr … 继续阅读“C++内存越界问题及办理要领”

    :