- 博客(34)
- 收藏
- 关注
原创 无符号的关键词
而短整型、长整型技术上是正确的,我们更愿意使用速记版本的短期和长期的替代。添加前缀int使类型难区分变量int类型。这可能导致错误(如溢出)如果短期或长期的改性剂是无意中错过了。因为char,int短,大小,和长可以依赖于编译器和/或计算机体系结构的不同,可以是整数的大小而不是名字的指导。我们经常把整数位或字节的类型被分配一个变量数。当你在最后一节中了解到,一个变量n位可存储2 ^
2014-03-11 09:49:57
1329
原创 当编译器编译main.cpp,
尝试编译这个程序吧。你会注意到,它没有编译,它提供了相同的编译错误的程序在上一课中,函数的顺序错了声明:添加CPP。(10):错误c3861:“添加”:未找到标识符添加CPP。(15):错误c2365:“添加”:重定义;以前的定义是“以前未知的标识符”当编译器编译的代码文件,它不知道生活在任何其他文件函数的存在性。这是这样做的文件可能有函数或变量具有相同名称的那些在其他文件
2014-03-09 14:07:32
769
原创 诠释主体
我得到它的工作只是通过包括通常的头,不包括在原来的职位代码片段。让我知道,如果它不工作,我确信我不知道为什么……:)main.cpp:/ /第一次尝试函数分别定义一个项目#包括#包括#包括使用std命名空间;国际add_two(int IN,int IN2);//函数原型/ /主诠释主体(int nnumberofargs,c
2014-03-09 14:06:33
439
原创 我是全新的C + +
我有一个问题。编译器如何知道接add.cpp。我学习C++和我学到你需要向前声明的任何和所有的情况。多个文件或不。在代码的顶部声明(原型),然后利用主文件的功能,然后在主要包括你定义的函数。编译器会为原型,第一次看见和知道的函数定义的某个地方,然后去主,当该函数被称为编译通过的源代码,直到找到一个函数具有匹配名称和参数列表。然后,执行功能与传递给它的参数在主。什么是编译器做当函数中没有定义
2014-03-09 14:05:24
430
原创 代码块准确
我已经把代码文件中的代码块准确。”(主要添加)但当涉及到编译它似乎罚款代码但给予警告消息。“警告:无法读取文件的时间戳:C:\文件和设置\桌面\多文件程序\ untitled1 C将控制台执行:斌调试\多文件programs.exemingw32-g + +。EXE:obj \调试\ untitled1。O:没有这样的文件或目录编译你的文件,你需要去
2014-03-09 14:03:53
375
原创 块和它的多重定义:
风格范围是指造型里面的代码块的范围,类似于变量作用域内的代码块的概念。当编写JavaScript代码,例如,分裂成一系列的模块化代码库的方法和功能很好的做法,这样的变量在每个函数创建的作用域只对特定的功能,不可在它的外面。这就是所谓的变量范围感应。我们这里需要的,是一种诱导式的范围内的功能,或任何其他代码块,在这样一种方式,方式应用于上下文不泄漏到其它功能或代码块。应该提到的是,#包括“程
2014-03-09 14:03:00
554
原创 的确是这样。
迭代函数(那些使用for或while循环)总是比他们的同行更有效的递归。这是因为,每次你调用一个函数有一定量的开销,发生。迭代函数避免这种开销。这并不是说迭代函数一直是一个更好的选择。有时一个函数的递归实现,更清洁和更容易遵循,招致了一些额外的开销在可维护性是比它更值得的利益。请注意,一个斐波那契数发生器递归实现的效率很低。例如,计算斐波那契(5),计算斐波那契(4)和斐波纳契
2014-03-08 17:15:50
388
原创 将来收到此错误。
一个问题是经常问“为什么是递归函数,使用递归函数,如果你可以做很多相同的任务反复(循环的使用或while循环)?“。原来,你总是可以解决递归问题的迭代-然而,不平凡的问题,递归版本通常是非常简单的写(读)。斐波那契数列其中最著名的数学递归算法是斐波那契数列,如Fibonacci序列出现在自然界中的许多地方,如分支树,贝壳的螺旋,一个菠萝的幼果,一个不卷曲的蕨叶,和一个松果的安排。
2014-03-08 17:14:39
264
原创 堆的教训
在对堆栈和堆的教训,你知道每个函数调用会将数据放在调用堆栈。因为countdown()函数不会返回(它只是调用countdown()再次),这个信息是不会被弹出堆栈!因此,在某一点上,计算机将运行的堆栈内存,将导致堆栈溢出,和程序会崩溃或终止。作者机,本程序计数到11732结束之前!这个程序演示了递归函数的最重要的一点:你必须包括一个终止条件,否则他们将“永远”(或者直到调用堆栈内存)。
2014-03-08 17:13:18
362
原创 Uniform initialization
一个初始化列表是一个列表,括号({})初始化,可以用来初始化简单聚合数据类型和类实现std::initializer_list:Uniform initializationAs noted above, C++03 is inconsistent in how it lets you initialize different types of data. Initializ
2014-03-07 19:36:54
534
原创 Proper use of comments
1cout "Hello world!" // Everything from here to the right is ignored.Typically, the single line comment is used to make a quick comment about a single line of code.
2014-03-07 19:34:10
518
原创 C++英文翻译。
你工作在一个新的代码将不会编译,你需要运行的程序。编译器不会让你运行如果有编译错误。注释掉的进展代码允许程序编译,所以你可以运行它。2)你想改变的方式,通过评论了个别代码行的执行你的计划。例如,你认为一个特定的函数调用你的程序崩溃。评述了函数调用和运行您的程序可能表明,功能是罪魁祸首。在我们即将到来的例子,我们将提醒使用Visual Studio Express,他们需要开始他们的
2014-03-07 19:32:52
3313
原创 学习材料
除了我上面说的,亚马逊的电子图书出版19 Oct 2010(第一版)。的评论,说它看起来像复制粘贴网络教程!我们都知道,这个网站提供的内容从2007(至少)。该死。如果你需要一个链接,亚历克斯,给我个电话。我不在乎那么多的如果有人赚钱的免费的东西,但如果他/她组织的免费内容,明确市场然后腐烂的攻击。我刚发现你的网站,因为我今天在寻找更多的信息关于学习C++。几个月前,我在寻找更多的
2014-03-07 19:28:45
487
原创 可能是常见的攻击
紧跟着我以前的帖子,这就是为什么我们不能有好的东西,我们已经与黑客/恶意软件有一个另外的一个事件。根据我的主人,剥削者发现了一种利用恶意脚本Webmin控制面板和负载的网站。作为一个结果,该网站再次被停赛,而账户隔离。好消息是,我们重新运转起来(再次),与更新的软件一个干净的帐户。一切都已从备份恢复,但是,由于新的帐户运行不同版本的Linux和一个略为不同的配置,它可能会有一些小问题,但我
2014-03-07 19:27:28
428
原创 文件的文件夹
现在,我建议你开始做一头你的头文件的文件夹现在,找到你的头文件,然后复制之后,发现你的项目,你刚救了{很好的机会,它将在我的文件的Visual Studio 2010 } [项目]然后输入您的项目去“项目名称”例如我的项目被命名为“1.9课″{项目1.9课–{当你看到其他头文件将在那里}现在打开你的“项目”,在屏幕的右边应该有“解”屏幕,在头
2014-03-07 17:18:20
404
原创 编译器编译main.cpp
现在,当编译器编译main.cpp,就会知道添加。使用这种方法,我们可以给文件访问,生活在另一个文件的功能。然而,当程序变得越来越大,它就有前向声明每个功能,你在一个不同的文件使用,生活乏味。为了解决这个问题,介绍了头文件的概念。我们将讨论在头文件的头文件的教训。现在,当编译器编译main.cpp,就会知道添加。使用这种方法,我们可以给文件访问,生活在另一个文件的功能。然而,当程序变得越来越大,它
2014-03-07 17:17:20
687
原创 程序提供向后兼容性
当C + +是第一个被创造出来,所有的文件在标准运行库结束。H。生活是一致的,它是好的。cout和cin的原始版本住在iostream。当语言是标准的ANSI委员会,他们决定把所有的功能在运行库在命名空间std中(通常是一个好主意)。然而,这提出了一个问题:如果他们把所有的功能在std命名空间中,旧的程序没有任何更多的工作!为了解决这个问题,因为旧的程序提供向后兼容性,一套新的头文件使用相
2014-03-07 17:16:12
541
原创 预编译的对象
图书馆是一个封装的代码是在许多程序中重用。通常,一个库包含头文件包含所有图书馆希望揭露声明(公开)的用户,和一个预编译的对象,包含所有的实现代码编译成机器语言。这些库通常有一个。库或扩展DLL。在Windows,和。或。所以扩展UNIX。为什么图书馆预编译?首先,因为图书馆很少改变,他们不需要重新编译的时候,如果有。这将是你写的,编译应用程序每次浪费时间。第二,由于预编译的对象是机器语言,它阻止人
2014-03-07 17:15:21
901
原创 假设错误处理
如今,新的运营商通过bad_alloc例外,如果它不能分配内存。因此,如果要检查pandata = = 0但异常处理的实施应在你的代码的地方是不必要的。如果你不抓住这个错误,你不重新定义unexpected()或terminate()功能,你的程序将终止反正做声明的安全性:pandata [ 5 ] = 3;不相关的。我还想知道一个很好的维护应写。像它应该是写在一个语句复制声明的争论而
2014-03-05 13:46:45
428
原创 C + +的检测
C + +的检测和处理错误的称为异常处理提供了一个方法。基本的想法是,当错误发生时,它是“扔”。如果当前函数不“抓”的错误,该函数的调用方有机会捕捉错误。如果调用方不捕获错误,主叫方的主叫有机会捕捉错误。误差逐步上移堆栈直到它要么是捕获和处理,或直到main()未处理错误。如果没有异常处理,程序通常终止与异常错误。异常处理是一种先进的C + +的话题,我们把它盖在很多细节在本教程的15章。
2014-03-05 13:45:28
481
转载 检测违反假设
事实上,我们可以捉到几乎所有的假设,需要在三个地点进行检查:当一个函数被调用,用户可以通过在语义上毫无意义的函数参数。当一个函数返回,返回值可能表明发生了一个错误。当程序接收输入(无论是从用户,或文件),输入不正确的格式。因此,下列规则时应使用编程的防守:在每个函数前,检查以确保任何参数的适当的值。在一个函数被调用,检查它的返回值(如果有),以及任何
2014-03-05 13:44:18
568
原创 假设错误检测
始终使用括号来消除操作者优先如果有任何问题或机会的混乱。算术运算符都像他们在正常的数学。弹性模量(%)算子从整数除法返回余数。当心“舍入或符号错误时的整数的除法和取模操作数是消极的。递增和递减运算符可以用来方便地增加或减少数。小心的副作用,特别是当它涉及到函数参数的求值顺序。关系运算符可以用来比较两个浮点数。小心使用浮点数的等式和不等式。你必须始终认为分配的字节的数
2014-03-05 13:42:48
579
原创 解释在维基百科
也有一个很好的解释在维基百科(是的,有时–不经常虽然–维基百科有好的文章):“组分的二元组分的二进制只有终止如果分母的2作为唯一的主要因素。作为一个结果,1 / 10不具有一个有限的二进制表示,这导致10×0.1不在浮点运算被精确地等于1。作为一个例子,来解释二进制表达为1 / 3 = 010101。……,这意味着:1 / 3 = 0×2 ^(?1)+1×2 ^(?2)+ 0×
2014-03-05 10:31:12
425
原创 必要显示数
大部分时间它根本就没有必要显示数,有效数字的精度/舍入误差蠕变的数量。一般用浮点数,程序将显示为2-5截断小数。我设定精度等级为4,并增加了2值cout,fvalue1 + fvalue2。我fvalue1实际上是舍入到1.345和fvalue2实际上是1.123,希望现在得到2.468的结果,但报告的ftotal不是2.468′这是为什么呢?我不知道这
2014-03-05 10:30:00
353
原创 浮点数的两件事
总结,你应该记住的浮点数的两件事:1)提供有限的精度的浮点数。浮动通常提供大约7位有效数字的精度值,和双打提供大约16位有效数字。尝试使用更多的有意义的数字会导致精度损失。(注:占位符零点不算有意义的数字,所以一个数的22000000000,或0.00000033只占2位)。2)浮点数经常有小的舍入误差。很多时候这些不起眼的因为他们是如此的小,因为数据截断误差传播到输出之前,是不会
2014-03-05 10:28:30
399
原创 工程设计
哇,想象我可以存储在一个千字节多少变数:D几年前当他们用在数控机床的东西用punchtape知道我,有一条带,超过12字节的信息非常impracticle的:P现在我想想,punchtape只是很像字节,在磁带上的每一排有8圈,其中一些被打了(我猜是相当于一个点的值为1)和电脑读取的值,它……至少我觉得如何它的工作这取决于使用的代码或应用程序和工程设计。(你不能把5
2014-03-04 14:21:31
409
原创 真正的共识
计算机通过移动二进制数字(位)在工作。然而,大多数计算机不与个别位而工作,他们在周围移动数据块。这一块的大小被称为一个“字”。通常,当我们谈到一机多点”,我们说一个字的大小。因此,一个32位的机器有一个32位的字的大小,这意味着它移动信息大约在32位的时间。通常情况下,现代的计算机用一个字地址存储器。一个32位的字,这意味着大约有2 ^ 32(4000000000)独特的内存地址,可以解决
2014-03-04 14:20:34
515
原创 课上基本解决
当你学会了在课上基本解决,对现代机器内存通常被组织成字节大小的块,每个块具有一个唯一的地址。在这一点上,它是有用的认为记忆是一束分支或邮箱里我们可以把和检索信息,和变量的访问这些分支或邮箱名称。然而,一方面,大多数变量实际上采取了超过1字节的内存这样的比喻是不正确的。因此,一个单一的变量可以用2,4,甚至8个连续的内存地址。一个变量的使用是基于它的数据类型的内存量。幸运的是,因为我们通常访
2014-03-04 14:19:38
347
原创 平均距离
是完全准确的,它是需要说,给定的功能depsilon = = 1给出的精度为2.0202……%(左侧和右侧方程时,X = { - } 101y / 99 ~ = { - } 1.0202……)。是对称的,功能比较dx和dy一些~dx和dy之间的平均距离:返回工厂(dx dy) =晶圆厂(DX + DY)/ 2 / 100×depsilon;//如果depsilon是%在
2014-03-04 13:26:56
634
原创 精度误差
第二和更严重的潜在误差精度误差,在那里你的号码无法储存因为浮点数表示没有足够的内存。精度误差更加严重,因为他们可以比舍入误差更大程度的大小影响你的回答。0.0095×36.75 = 0.349125,这是6个重要的人物,因此在这种情况下,你可能会在精度方面是好的。因此,你的回答将只能通过小的舍入误差的影响。但是,考虑一个例子:0.0095×36.7513。虽然36.7513是小数点
2014-03-04 13:25:40
597
原创 一个浮不精确到7位小数
它是最容易想到的depsilon百分比。一个depsilon 0.01意味着dx和dy必须在为了彼此的1%被认为是相同的。在右侧的例如,如果工厂(DX)值为1000,和depsilon是0.01,最大距离的两个数是10。最后,我们之间的距离比较dx和dy的最大距离,他们仍然可以被认为是“足够接近”。如果他们足够接近,该函数将返回True。否则,则返回false。为depsilon值
2014-03-04 13:24:40
447
原创 语法为C样式
这个语法为C样式数组和任何支持一个迭代器通过begin()和end()功能。这包括所有标准库容器类(包括std::string)和initialization_list(我们将在下一课盖)。你也可以让它为你的自定义类定义迭代器风格begin()和end()成员函数。如果你使用的是旧的类不支持begin()和end()成员函数,你可以写的自由站立的开始和结束(X)(x)的功能和语法仍然会工作。
2014-02-28 14:55:12
424
原创 类型的声明
1号线是一种特殊类型的声明,称为预处理器指令。预处理器指令告诉编译器执行一项特殊任务。在这种情况下,我们是告诉编译器,我们想使用iostream库。iostream库中的代码,告诉什么cout和endl做编译器。换句话说,我们需要为iostream库显示在屏幕上。3行是main()功能,作为你学习上面,是强制性的。每个程序都必须有一个main()功能。4线和8线告诉这的主要
2014-02-28 14:50:03
406
原创 一个程序的结构
C++中的语句,通常分为单位称为功能。一个函数是一个集合的语句顺序执行。每个C++程序都必须包含一个特殊的功能称为main()。当C + +程序运行,执行从内部main()先声明。函数通常写做一个非常具体的工作。例如,函数名为max()可能包含的声明,指出这两个数字是大。函数名为calculategrade()可能会计算一个学生的成绩。我们将谈论更多有关功能后。图书馆的功能组已被“打包
2014-02-28 14:47:30
533
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人