c/c++
viease
nothing
展开
-
c++学习之--关于文件
关于文件 输入输出(简称I/O)是指程序和计算机的外部设备之间的交换数据。 输出操作是指程序将数据转换为字节序列输出到外部设备。 输入操作是指程序从外部设备接收到字节序列并转换为指定的格式数据。 输入输出操作中的字节序列称为字节流(Stream),根据对字节内容的解释方式字节流又分为字符流(文本流)和二进制流。 文件分为: 文本文件(也称为ASCII码文件):每个字节为字符原创 2013-11-17 15:20:48 · 765 阅读 · 0 评论 -
c++学习之--关于程序编译
程序的编译流程: 编辑 预处理和编译 链接 关于编辑就不多说了,编辑就是将源文件输入计算机保存并修改。 预处理和编译,在编译之前会进行编译预处理 编译预处理包括:文件包含,宏,条件编译。关于编译预处理就是进行文件包含,宏展开,确定条件编译。然后是编译,编译是以一个个独立的文件作为单元,一个经过编译预处理的文件就会编译出一个目标文件(一个经过编译预处理的cpp文件就会编译出一原创 2013-11-17 15:06:10 · 732 阅读 · 0 评论 -
c++学习之-- 关于delete和delete[]的区别
在做运算符重载发面的练习的时候就对delete和delete[]之间不太理解 下面做一下总结: C++在回收用new分配的单个对象的内存空间的时候用delete 回收用new[]分配的一组对象的内存空间的时候用delete[] 而关于new[]和delete[],其中又分为2中情况 1. 为基本的数据类型分配和回收空间。 2. 为自定义的类型分配和回收空间原创 2013-11-17 15:14:46 · 745 阅读 · 0 评论 -
c++学习之--关于程序编译的文章
C/C++编译链接过程详解 有些人写C/C++(以下假定为C++)程序,对unresolved external link或者duplicated external simbol的错误信息不知所措(因为这样的错误信息不能定位到某一行)。或者对语言的一些部分不知道为什么要(或者不要)这样那样设计。了解本文之后,或许会有一些答案。 首先看看我们是如何写一个程序的。如果你在使用转载 2013-11-17 15:23:41 · 736 阅读 · 0 评论 -
c++学习之-- 关于继承和派生
三种继承方式之间的差别 公有继承,使得基类public和protected成员的访问属性在派生类中不变,而基类private(私有)成员不可访问。 私有继承,使得基类public和protected成员都以private成员身份出现在派生类中,而基类private成员不可访问。 保护继承,使得基类public和protected成员都以protected成员身份出现在派生类中,而基类p原创 2013-11-17 15:18:39 · 758 阅读 · 0 评论 -
c++学习之--关于编译预处理
文件包含 在一个源程序中可用“文件包含”(include)预编译处理命令将另一个源程序文件的全部内容包含进来。(include)命令的格式为: #include”文件名” 或 #include 1.关于用表示直接从c++编译器指定的目录include查找,而用双引号括起来的文件名表示先从当前目录查找,若找不到再到编译器指定的目录include查找。通常,包含用户自定义的文件用双引号,而包原创 2013-11-17 15:30:17 · 755 阅读 · 0 评论 -
c++学习之--排序4-直接选择排序
#include using namespace std; #define N 10 void XzSort(int *a,int n) { int i,j,min_i,t; for(i=0;i { min_i=i; for(j=i+1;j { if(a[min_i]>a[j]) { min_i=j; } } if(min_i!=i) { t=原创 2013-11-20 21:17:03 · 749 阅读 · 0 评论 -
c++学习之--排序2-直接插入排序
#include using namespace std; #define N 10 void CrSort(int *a,int n) { int i,t; for(i=1;i<n;i++) { t=a[i]; while(t<a[i-1] && i) { a[i]=a[i-1]; i--; } a[i]=t; } } int main() {原创 2013-11-20 21:15:40 · 729 阅读 · 0 评论 -
c++学习之--排序1-冒泡排序
#include using namespace std; #define N 10 void MpSort(int *a,int n) { int i,j; for(i=0;i<n-1;i++) { for(j=0;j<n-1-i;j++) { if(a[j]>a[j+1]) { a[j]=a[j]+a[j+1]; a[j+1]=a[j]-原创 2013-11-20 21:14:53 · 723 阅读 · 0 评论 -
c++学习之--关于多态性
对于多态性一直都不甚理解,今天遇到了有关的问题就认真查阅了关于多态性的资料。 多态性简单地概括为“一个接口,多种方法”,程序在运行的时候才决定调用的函数。C++的多态性是通过虚函数来实现的,虚函数允许子类重新定义成员函数,而子类重新定义父类的做法称为覆盖,或者称之为重写(重写分两种只有在重写了虚函数的才能算作体现了c++的多态性)。重载的话允许有多个同名的函数,但是这些函数的参数列表不同,允许参原创 2013-11-17 15:19:41 · 858 阅读 · 0 评论 -
c++学习之--关于运算符重载
关于运算符重载方面的小结: 在做了运算符重载的练习之后,有了一些疑惑,同时也对运算符重载理解更近了一步。 了解了运算符重载的基本格式,从最简单的双目运算符到单目运算符,再将运算符重载为 友元函数。重载赋值运算符(为什么要重载赋值运算符?),重载下标运算符等等(重载运算符的一些语法规则在练习中)。 下面列出我的一些问题: 在重载运算符的时候发现了单目运算符返回的是类的引用,但是双目运算符返原创 2013-11-17 15:29:12 · 618 阅读 · 0 评论 -
c++学习之--排序3-快速排序
#include using namespace std; #define N 10 int Partition(int *a,int low,int high) { int temp; temp=a[low]; while(low { while(low { high--; } if(low { a[low]=a[high]; low++;原创 2013-11-20 21:16:26 · 652 阅读 · 0 评论 -
c++学习之--排序5-堆排序
#include using namespace std; // 58 45 72 86 77 21 34 60 void Swap(int *x,int *y) { int t; t=*x; *x=*y; *y=t; } void HeapAdjust(int *a,int i,int size) { int lchild=2*i; int rchild=2*i+1; i原创 2013-11-21 19:32:16 · 605 阅读 · 0 评论 -
c++学习之--关于运算符重载
关于运算符重载方面的小结: 在做了运算符重载的练习之后,有了一些疑惑,同时也对运算符重载理解更近了一步。 了解了运算符重载的基本格式,从最简单的双目运算符到单目运算符,再将运算符重载为 友元函数。重载赋值运算符(为什么要重载赋值运算符?),重载下标运算符等等(重载运算符的一些语法规则在练习中)。 下面列出我的一些问题: 在重载运算符的时候发现了单目运算符返回的是类的引用,但是双目运算符返原创 2013-11-17 15:17:30 · 687 阅读 · 0 评论 -
c++学习之--关于堆栈理解
运算符重载7~重载赋值运算符.cpp这个代码涉及到释放2次堆内存导致运行错误。 查阅了关于堆栈的一些资料,下面写一下关于堆栈的理解。 先下一个定义: 堆内存是区别于栈,全局数据区和代码区的拎一个内存区域,堆允许程序动态的申请某个大小的内存空间。 做一个比喻: 堆内存就好比自己动手做自己喜欢吃的菜。(必须事事亲力亲为) 栈内存就好比去饭店吃饭只管点菜(发出申请),吃和付原创 2013-11-17 15:09:22 · 942 阅读 · 0 评论