
c/c++
jlran
这个作者很懒,什么都没留下…
展开
-
简单聊天对话的实现
还是打开我们的编译器,开始我们的程序编程吧。首先是源代码如下: 当然了,今天的代码还是图片,以防直接复制啦,我还是聪明吧!聪明,你还不快点敲代码啊!运行的代码,应该是这样的: 你又没有运行出来啊!好了,既然运行出来了,那就开始我们今天的讲解吧,源代码的讲解,你会学到很多哦!一:Char、int、float是C语言的基本数据类型,他还有一些兄弟哦!比如:short、long、double等等,这六个原创 2016-09-29 10:55:45 · 2347 阅读 · 0 评论 -
[C++]函数重载
#include //默认参数和占位参数//函数重载//int func(int a, int b, int c= 0){ //测试调用失败的列子// return a+b;//}//函数重载至少满足下面的一个条件://参数个数不同//参数类型不同//参数顺序不同int func(int a, int b){ return a-b;}int func(int a, int b, int c){ /原创 2016-09-29 10:58:40 · 151 阅读 · 0 评论 -
【C++】类
#include using namespace std;//封装//类是把属性和方法封装。。。//类的内部//类的外部//我们抽象了一个类,用类去定义对象//类是一个数据类型,类是抽象的//对象是一个具体的变量。。占用内存空间。//类做函数参数的时候,类封装了属性和方法,在被调用函数里面, 不但可以使用属性,而且可以使用方法(成员函数);//面向过程编程加工的是:函数//面向对象编程加工的是:类原创 2016-09-29 10:58:43 · 142 阅读 · 0 评论 -
【C++】构造函数和析构函数
#include using namespace std;class test{private: int a; //放在私有中,有助于保护,通过set和get方法得到其值public: test(){ //无参构造函数 a = 10; } test(int a){ //有参构造函数 this->a = a; } test(const test &obj){ //有参构造函数 完成对象的初始化原创 2016-09-29 10:58:45 · 254 阅读 · 0 评论 -
[c++]深拷贝和浅拷贝
#include //在有指针的情况下,浅拷贝只是增加了一个指针指向已经存在的内存,而深拷贝就是增加一个指针并且申请一个新的内存,使这个增加的指针指向这个新的内存,//采用深拷贝的情况下,释放内存的时候就不会出现在浅拷贝时重复释放同一内存的错误//?默认复制构造函数可以完成对象的数据成员值简单的复制//?对象的数据资源是由指针指示的堆时,默认复制构造函数仅作指针值复制////浅拷贝程序C++提供的原创 2016-09-29 10:58:48 · 426 阅读 · 0 评论 -
[C++]多个对象构造、析构、构造和析构的顺序
#include //多个对象构造和析构//1)当类中有成员变量是其它类的对象时,首先调用成员变量的构造函数,调用顺序与声明顺序相同;//之后调用自身类的构造函数//2)析构函数的调用顺序与对应的构造函数调用顺序相反////2、类成员中若有const修饰,必须在对象初始化的时候,给const int n 赋值//当类成员中含有一个const对象时,或者是一个引用时,他们也必须要通过成员初始化列表进原创 2016-09-29 10:58:51 · 2524 阅读 · 0 评论 -
[C++]匿名对象
#include using namespace std;//匿名对象可以理解为是一个临时对象,一般系统自动生成的//如你的函数返回一个对象,这个对象在返回时会生成一个临时对象。//1)匿名对象生命周期//2)匿名对象的去和留class Test{public: Test(){ cout } Test(Test &obj){ cout } ~Test(){ cout }};void P原创 2016-09-29 10:58:53 · 1142 阅读 · 0 评论 -
[C++]static
#include using namespace std;//关键字 static 可以用于说明一个类的成员,//静态成员提供了一个同类对象的共享机制//?把一个类的成员说明为 static 时,这个类无论有多少个对象被创建,这些对象共享这个 static 成员//?静态成员局部于类,它不是对象成员////静态成员函数数关键字static//静态成员函数提供不依赖于类数据结构的共同操作,它没有th原创 2016-09-29 10:58:59 · 249 阅读 · 0 评论 -
[C++]friend友元类-友元函数
#include using namespace std;//?若B类是A类的友员类,则B类的所有成员函数都是A类的友员函数//?友员类通常设计为一种对数据操作或类之间传递消息的辅助类 class Test{public: Test(){ a = 10; b = 20; } void getAB(){ cout } friend void setAB(Test *t1, int a, in原创 2016-09-29 10:59:02 · 612 阅读 · 0 评论 -
[C++]operator--重载
#include //函数重载就是对一个已有的函数赋予新的含义,//使之实现新功能,因此,一个函数名就可以用来代表不同功能的函数,也就是”一名多用”//操作符重载是C++的强大特性之一//操作符重载的本质是通过函数扩展操作符的语义//operator关键字是操作符重载的关键//friend关键字可以对函数或类开发访问权限//操作符重载遵循函数重载的规则//操作符重载可以直接使用类的成员函数实现//原创 2016-09-29 10:59:05 · 1219 阅读 · 0 评论 -
[C++]继承
#include using namespace std;//继承概念//面向对象程序设计有4个主要特点:抽象、封装、继承和多态性//1、子类拥有父类的所有成员变量和成员函数 //2、子类可以拥有父类没有的方法和属性////3、子类就是一种特殊的父类//4、子类对象可以当作父类对象使用//派生类继承了基类的全部成员变量和成员方法(除了构造和析构之外的成员方法)//但是这些成员的访问属性,在派生过程原创 2016-09-29 10:59:07 · 798 阅读 · 0 评论 -
[C++]继承与构造析构
#include //子类对象可以当作父类对象使用//子类对象可以直接赋值给父类对象//子类对象可以直接初始化父类对象//父类指针可以直接指向子类对象//父类引用可以直接引用子类对象//子类对象构造时,需要调用父类构造函数对其继承得来的成员进行初始化//子类对象析构时,需要调用父类析构函数对其继承得来的成员进行清理//子类对象在创建时会首先调用父类的构造函数//父类构造函数执行结束后,执行子类的构原创 2016-09-29 10:59:10 · 977 阅读 · 0 评论 -
[C++]虚基类,解决多继承造成的二义性
#include using namespace std;//虚继承的意义//在多继承中,保存共同基类的多份同名成员,虽然有时是必要的,可以在不同的数//据成员中分别存放不同的数据,但在大多数情况下,是我们不希望出现的。因为保留多//份数据成员的拷贝,不仅占有较多的存储空间,还增加了访问的困难。//为此,c++提供了,虚基类和虚继承机制,实现了在多继承中只保留一份共同成员。//虚基类,需要设计和抽原创 2016-09-29 10:59:13 · 2590 阅读 · 0 评论 -
[C++]内联函数
#include //内联函数 inline/*1)内联函数在编译时直接将函数体插入函数调用的地方2)inline只是一种请求,编译器不一定允许这种请求3)内联函数省去了普通函数调用时压栈,跳转和返回的开销内联函数是使用inline关键字声明的函数,也成内嵌函数,它主要的作用是解决程序的运行效率。使用内联函数的时候要注意:1.递归函数不能定义为内联函数2.内联函数一般适合于不存在while和swi原创 2016-09-29 10:58:38 · 261 阅读 · 0 评论 -
[C++]引用和三目运算符
#include using namespace std;/*引用 Type& name Type* const nameC++编译器在编译过程中使用常指针作为引用的内部实现,因此引用所占用的空间大小与指针相同。当实参传给形参引用的时候,只不过是c++编译器帮我们程序员手工取了一个实参地址,传给了形参引用(常量指针)当函数返回值为引用时若返回栈变量不能成为其它引用的初始值不能作为左值使用若返回静原创 2016-09-29 10:58:35 · 708 阅读 · 0 评论 -
数据类型以及转义字符
1、基本数据类型 -->short、int、long、float、double、char2、构造数据类型 -->数组、struct【结构体】、union【共用体】、enum【枚举类型】3、指针类型 指针类型是一种特殊的,但又是非常重要作用的数据类型。4、空类型5、进制 二进制(0、1)、八进制(0~7)、十六进制(0~f)、十进制(0~9)等等6、常用的转义字符及其含义 转义字符 转原创 2016-09-29 10:55:56 · 1212 阅读 · 0 评论 -
程序设计与数组
C语句可分为以下五类:1.表达式语句 表达式语句由表达式加上分号“;”组成。例如: sum = a + b;2.函数调用语句 由函数名、实际参数加上分号“;”组成。3.控制语句 (1) 条件判断语句 if语句,switch语句 if(表达式) { 语句 }else{ 语句 } 可以多重else,不过中间的需要else if(表达式),最后一个才是else{ 语句 }原创 2016-09-29 10:56:04 · 846 阅读 · 0 评论 -
函数(案例:水仙花数)
把函数可分为库函数和用户定义函数两种。 (1)库函数 由C系统提供,用户无须定义, 也不必在程序中作类型说明,只需在程序前包含有该函数原型的头文件即可在程 序中直接调用。printf 、 scanf 、 getchar 、putchar、gets、puts、strcat等函数。 (2)用户定义函数 由用户按需要写的函数。用户自定义函数, 不仅要在程序中定义函数本身, 而且在主调函原创 2016-09-29 10:56:18 · 3305 阅读 · 0 评论 -
指针实例理解
# include //指针与数组 void pArry(int *p){ for(int i = 0; i printf("%d ",p[i]); } printf("\n");}//结构体 struct Person{ char *name; int age;}person;void prin(Person *p){ printf("%d %s\n",p->age,p->name);}in原创 2016-09-29 10:56:21 · 1090 阅读 · 0 评论 -
指针实例二
#include #include struct Node{ int age; char *name;};void prin(struct Node **p){ printf("%d %s \n",(*p)->age,(*p)->name);}int main(){ struct Node *p; p = (struct Node *)malloc(sizeof(struct Node)); /原创 2016-09-29 10:56:23 · 178 阅读 · 0 评论 -
动态内存可以跨函数使用
# include # include void f(int **q){ *q = (int *)malloc(sizeof(int)); **q = 5; }int main(){ int *p; f(&p); printf("%d\n",*p); return 0;}原创 2016-09-29 10:57:07 · 244 阅读 · 0 评论 -
字符串函数
void *memset(void *dest, int c, size_t count);将dest前面count个字符置为字符c.返回dest的值. void *memmove(void *dest, const void *src, size_tcount);从src复制count字节的字符到dest. 如果src和dest出现重叠, 函数会自动处理.返回dest的原创 2016-09-29 10:57:35 · 181 阅读 · 0 评论 -
文件
/*1、 文件使用方式 意 义“rt” 只读打开一个文本文件,只允许读数据“wt” 只写打开或建立一个文本文件,只允许写数据“at” 追加打开一个文本文件,并在文件末尾写数据“rb” 只读打开一个二进制文件,只允许读数据“wb” 只写打开或建立一个二进制文件,只允许写数据“ab” 追加打开一个二进制文件,并在文件原创 2016-09-29 10:57:37 · 264 阅读 · 0 评论 -
[C++]namespace命名空间
#include //namespace命名空间namespace NameSpaceA{ int a = 0;}namespace NameSpaceB{ int a = 1; namespace NameSpaceC{ struct Teacher{ char name[11]; int age; }; }}int main(){ using namespace NameSpace原创 2016-09-29 10:58:24 · 275 阅读 · 0 评论 -
[C++]register关键字
#include /* register:这个关键字请求编译器尽可能的将变量存在CPU内部寄存器中,而不是通过内存寻址访问,以提高效率 register修饰符暗示编译程序相应的变量将被频繁地使用,如果可能的话,应将其保存在CPU的寄存器中,以加快其存储速度。 register变量必须是能被CPU所接受的类型。这通常意味着register变量必须是一个单个的值,并且长度应该小于或者等于整型的长度。原创 2016-09-29 10:58:27 · 652 阅读 · 0 评论 -
[C++]语法增强
#include //语法增强void n01(){ //C语言中的变量都必须在作用域开始的位置定义!! //C++中更强调语言的“实用性”,所有的变量都可以在需要使用时再定义。 int i = 0; printf("aaa\n"); int k = 0;}void n02(){ //register关键字的变化 //register关键字请求“编译器”将局部变量存储于寄存器中 //C语言中无法取原创 2016-09-29 10:58:30 · 226 阅读 · 0 评论 -
[c++]const
#include //constint main(){ const int a = 1; int const b = 2; //a = 10; //代表一个常整形数 //b = 10; //代表一个常整形数 //const int *c; // c是一个指向常整形数的指针(所指向的内存数据不能被修改,但是本身可以修改) //int* const d; //d 常指针(指针变量不能被修改,但是原创 2016-09-29 10:58:33 · 164 阅读 · 0 评论 -
[C++]STL
C++ STL (Standard Template Library标准模板库) 是通用类模板和算法的集合,它提供给程序员一些标准的数据结构的实现如 queues(队列), lists(链表) 和stacks(栈)等.C++ STL 提供给程序员以下三类数据结构的实现:标准容器类顺序性容器 vector 从后面快速的插入与删除,直接访问任何元素 deque 从前面或后面快速的插入与删除,直接访问任原创 2016-09-29 10:59:30 · 689 阅读 · 0 评论