|
 |
《挑战30天
C/C++ 入门极限系列教程》引言 |
作为一个长篇的C++入门教程,无论如何也应该有这么个引言,可是文笔并不好的我,想了很久也不知道该如何写……
仔细想想,与其把这篇短文当作教程的引言,其实它更应该是一篇引导初学者步入C++殿堂的策论。
几年并不算很长的编程经验,使我感触颇深,痛苦迷茫,以及成功后的喜悦一直交替着伴随我,爱好编程的我,在学习期间也被很多很多学习的困难疑惑所阻挡,甚至不只一次的想放弃……>>>阅读全文 |
·C/C++中指针学习的两个绝好的例子 |
指针学习不好关键是概念不清造成的,说的简单点就是书没有认真看,指针的学习犹如人在学习饶口令不多看多学多练是不行的,下面是两个很经典的例子,很多书上都有,对于学习的重点在于理解*x和x的理解,他们并不相同,*x所表示的其实就是变量a本身,x表示的是变量a在内存中的地址,如果想明白可以输出观察cout<<*x"|"x;,当定义了int
*x;后对x=&a的理解的问题。仔细阅读和联系下面的两个例子我想指针问题就不是难点了……>>>阅读全文 |
·C++下的引用类型 |
引用类型也称别名,它是个很有趣的东西。在C++ 下你可以把它看作是另外的一种指针,通过引用类型我们同样也可以间接的操作对象,引用类型主要是用在函数的形式参数上,通常我们使用它是把类对象传递给一个函数……>>>阅读全文 |
·C++中布尔类型 |
布尔类型对象可以被赋予文字值true或者false,所对应的关系就是真与假的概念。我们通常使用的方法是利用他来判断条件的真与假……>>>阅读全文 |
·关于C++中的内联函数(inline) |
在C++中,为了解决一些频繁调用的小函数大量消耗栈空间或者是叫栈内存的问题,特别的引入了inline修饰符,表示为内联函数。可能说到这里,很多人还不明白什么是栈空间,其实栈空间就是指放置程序的局部数据也就是函数内数据的内存空间,在系统下,栈空间是有限的,如果频繁大量的使用就会造成因栈空间不足所造成的程序出错的问题,函数的死循环递归调用的最终结果就是导致栈内存空间枯竭……>>>阅读全文 |
·C++中关于堆内存(heap)的概念和操作方法 |
堆内存是什么呢?我们知道在C/C++中定义的数组大小必需要事先定义好,他们通常是分配在静态内存空间或者是在栈内存空间内的,但是在实际工作中,我们有时候却需要动态的为数组分配大小,在这里c库中的malloc.h头文件中的malloc()函数就为您解决了问题(bc或者是在老的标准中是alloc.h),它的函数原形是void*
malloc(size_t size),在动态开辟的内存中,在使用完后我们要使用free()函数来释放动态开辟的内存空间……>>>阅读全文 |
·C/C++中字符串常量的不相等性,以及字符串的copy |
在一个判断两个内容为test的字符串常量是否相等的例子中,按照常理,应该是相等的,这些在一些过程式语言中会得到相等的结论,但在C/C++却不是这样。为什么呢?答案在这里:因为字符串常量存储在计算机内存中,两个字符串常量的地址均不相同,所以这样的比较自然就不会得到我们所需要的结果,如果要进行是否相等的比较应该使用strcmp()这个涵数进行比较……>>>阅读全文 |
·C/C++中命令行参数的原理 |
很早以前的dos应用程序中,我们经常会用命令行参数执行应用程序例如: copy c:\1.txt
d:\ 。 在C/C++中,命令行参数的传递是利用main进行形参传递实现的……>>>阅读全文 |
·C/C++中的结构体 |
什么是结构体? 简单的来说,结构体就是一个可以包含不同数据类型的一个结构,它是一种可以自己定义的数据类型,它的特点和数组主要有两点不同,首先结构体可以在一个结构中声明不同的数据类型,第二相同结构的结构体变量是可以相互赋值的……>>>阅读全文 |
·C++面向对象的编程入门篇-----类(class) |
上两篇内容我们着重说了结构体相关知识的操作。以后的内容我们将逐步完全以C++作为主体了,这也意味着我们的教程正式进入面向对象的编程了。前面的教程我已经再三说明,结构体的掌握非常重要,重要在哪里呢?重要在结构体和类有相同的特性,但又有很大的区别,类是构成面向对象编程的基础,但它是和结构体有着极其密切的关系……>>>阅读全文 |
·C++面向对象的编程入门篇--类构造函数与析构函数 |
请注意,这一节内容是C++的重点,要特别注意!我们先说一下什么是构造函数。上一个教程我们简单说了关于类的一些基本内容,对于类对象成员的初始化我们始终是建立成员函数然后手工调用该函数对成员进行赋值的,那么在C++中对于类来说有没有更方便的方式能够在对象创建的时候就自动初始化成员变量呢……>>>阅读全文 |
·C++类对象的复制-拷贝构造函数(深拷贝,浅拷贝) |
普通对象和类对象同为对象,他们之间的特性有相似之处也有不同之处,类对象内部存在成员变量,而普通对象是没有的,当同样的复制方法发生在不同的对象上的时候,那么系统对他们进行的操作也是不一样的,就类对象而言,相同类型的类对象是通过拷贝构造函数来完成整个复制过程的……>>>阅读全文 |
·C++友元的入门教程 |
友元能够使得普通函数直接访问类的保护数据,避免了类成员函数的频繁调用,可以节约处理器开销,提高程序的效率,但矛盾的是,即使是最大限度的保护,同样也破坏了类的封装特性,这即是友元的缺点,在现在cpu速度越来越快的今天我们并不推荐使用它,但它作为C++一个必要的知识点,一个完整的组成部分,我们还是需要讨论一下的……>>>阅读全文 |
·C++中类的继承特性 |
整个C++程序设计全面围绕面向对象的方式进行,类的继承特性是C++的一个非常非常重要的机制,继承特性可以使一个新类获得其父类的操作和数据结构,程序员只需在新类中增加原有类中没有的成分。可以说这一章节的内容是C++面向对象程序设计的关键……>>>阅读全文 |
·C++类的多态与虚函数的使用 |
类的多态特性是支持面向对象的语言最主要的特性,有过非面向对象语言开发经历的人,通常对这一章节的内容会觉得不习惯,因为很多人错误的认为,支持类的封装的语言就是支持面向对象的,其实不然,Visual
BASIC 6.0 是典型的非面向对象的开发语言,但是它的确是支持类,支持类并不能说明就是支持面向对象,能够解决多态问题的语言,才是真正支持面向对象的开发的语言,所以务必提醒有过其它非面向对象语言基础的读者注意……>>>阅读全文 |
·类的分解,抽象类与纯虚函数的需要性 |
为了不模糊概念在这里我们就简单的阐述一下类的分解,前面的教程我们着重讲述了类的继承,继承的特点就是,派生类继承基类的特性,进行结构扩张,这种逐步扩张,逐步在各派生类中分解彼此不同特性的过程其实就是类的分解……>>>阅读全文 |
·C++类的多重继承与虚拟继承 |
在过去的学习中,我们始终接触的单个类的继承,但是在现实生活中,一些新事物往往会拥有两个或者两个以上事物的属性,为了解决这个问题,C++引入了多重继承的概念,C++允许为一个派生类指定多个基类,这样的继承结构被称做多重继承……>>>阅读全文 |
·C++中的运算符重载函数及其值返回状态 |
运算符重载是C++的重要组成部分,它可以让程序更加的简单易懂,简单的运算符使用可以使复杂函数的理解更直观。对于普通对象来说我们很自然的会频繁使用算数运算符让他们参与计算,但是对于自定义类的对象来说,我们是无论如何也不能阻止写出像下面的代码一样的程序来的……>>>阅读全文 |
·C++运算符重载转换运算符 |
为什么需要转换运算符? 大家知道对于内置类型的数据我们可以通过强制转换符的使用来转换数据,例如(int)2.1f;自定义类也是类型,那么自定义类的对象在很多情况下也需要支持此操作,C++提供了转换运算符重载函数,它使得自定义类对象的强转换成为可能……>>>阅读全文 |
·C++运算符重载赋值运算符 |
自定义类的赋值运算符重载函数的作用与内置赋值运算符的作用类似,但是要要注意的是,它与拷贝构造函数与析构函数一样,要注意深拷贝浅拷贝的问题,在没有深拷贝浅拷贝的情况下,如果没有指定默认的赋值运算符重载函数,那么系统将会自动提供一个赋值运算符重载函数……>>>阅读全文 |
·Eclipse3.01
+ MinGW3.1配置标准C/C++开发环境 |
学习c语言和C++的人首先需要的是一个可提供练习的开发平台,对于C++来说,可供使用的工具平台有很多,包括Borland
的 C++ builder 和 Microsoft 的 Visual Studio 系列,的确他们都是非常不错的。对于我们此文的主角,Eclipse来说,很多人都知道它是为JAVA开发而生的,但今天我们要说的是如何利用它与MinGW配合,设置出高效的C++开发平台……>>>阅读全文 |
|
|