- 博客(21)
- 收藏
- 关注
原创 僵尸进程和孤儿进程
僵尸进程在创建子进程之后,父进程一直在忙,没有时间阅读子进程状态,导致子进程完成自己的任务之后无法退出,一直挂机,当进程退出父进程(使用wait()系统调用)没有没有读取到子进程退出的返回代码时就会产生僵尸进程。#include <stdio.h>#include <stdlib.h>#include <unistd.h>#include <errno.h>int main(){
2018-01-01 16:12:20
192
原创 C++之模板实现list
#include <iostream>#include <assert.h>using namespace std;template<typename T>struct ListNode{ ListNode(const T& data = T()) : _pNext(NULL) , _pPre(NULL) , _data(data)
2017-12-04 17:13:50
356
原创 C++之多态
多态多态就是指一种事物在不同时期的不同体现。多态有两张情况,动态多态和静态多态静态多态在编译期间完成的,编译器根据函数实参的类型(可能会进行隐式类型转换),可推断出要调用那个函数,如果有对应的函数就调用该函数,否则出现编译错误。静态多态的实现方法有两种:1.重载#include <iostream>using namespace std;int add(int left, int right)
2017-11-21 18:04:17
188
原创 菱形虚拟继承
单继承一个子类只有一个直接父类时称这个继承关系为单继承。class Person{public: void setinfo(int _age, const char *_name) { age = _age; name = _name; }protected: int age;public: string name;};
2017-11-20 18:23:15
191
原创 C ++之继承浅析
最近学习到C++中的的派生类,讲到了一个面向对象的继承,然后看书上的例子就感觉有一些熟悉,因为在C语言求struct的时候就有类似的东西,把一个结构体作为另一个结构体的成员,#include <stdio.h>struct A{ int a; int b;};struct B{ int c; struct A;};int main(){ printf
2017-11-13 17:35:13
3426
原创 C++之深浅拷贝
在C++中当 - 1.用已经存在的对象去构造出另一个新的对象。 - 2.当函数的形参是类的对象时。 - 3.当函数的返回值时类的对象时会用到拷贝构造函数。会用到拷贝函数。浅拷贝class Test{public: //构造函数 Test(int data) :_data(data) {} //拷贝构造函数 Test(const Te
2017-11-08 16:06:34
207
原创 malloc和new的区别
前段看书的时候看到了new和delete,是关于C++的动态内存开辟,而在以前的C语言的学习中学到过malloc和free,也是关于动态内存开辟的,今天想就C语言和C++ 中的动态内存有何差异来做个学习和总结。malloc,calloc,realloc在C语言中,动态内存的关键字有三个,分别是:1.malloc 其形式为 void* malloc(int size);可以看到其返回值为void*,
2017-11-03 14:33:23
353
原创 关键字static和const
static在学习到C++类时有一个关键词叫static,在C语言中也遇到过,所以在这里回顾并总结一下static的作用。static在C语言中的作用static修饰局部变量,改变局部变量的生命周期,但是不改变其作用域,生命周期直到文件销毁。static修饰全局变量,改变全局变量的连接属性,只能在本文件中被使用,使用extern外部声明也不行。static在C++的作用声明为static的类成员,成
2017-11-01 14:41:31
214
原创 类的六个默认成员函数
类有六个默认的成员函数分别是构造函数,拷贝函数,析构函数,赋值操作符重载,取地址操作符重载,const修饰的取地址操作符重载构造函数class CDate{ public: //类CDate的构造函数 //名字和类名相同,无返回类型 CDate( const int year, const int month, const int day
2017-10-30 13:36:44
406
原创 日期类的实现
#include <iostream>using namespace std;class Date{ friend ostream& operator<<(ostream& _cout, const Date& date); friend istream& operator>>(istream& _cin, Date& date);public: Date(int yea
2017-10-28 15:11:43
202
原创 C++复数类的完成
#include <iostream>using namespace std;class Complex{public: Complex(double r, double i); Complex operator + (const Complex &c); Complex operator - (const Complex &c); Complex operato
2017-10-27 16:38:26
471
原创 this指针
#include <iostream>using namespace std;class A{public: int getnum(){ return i; } void setnum(int x){ i = x; cout << "this指针保存的内存地址为:" << this << endl; } //void setnum(int x){this-> i = x
2017-10-24 18:55:23
198
原创 C++之初识类
初识类类的说明1、类定义了一种新类型,是抽象出来描述实体的。2、类将一组具有相关性数据包装在一体,这些数据称为类的成员变量或属性;类对自己的数据有特定的操作,这些操作称为类的成员函数或方法。3、类定义了一种新作用域,它可以选择性的将自己的成员提供给使用者(访问限定符)。4、++类中的任何成员都不能使用auto、extern、register修饰++5、一个类可以有多个成员,类的成员函数可以重载一.结
2017-10-24 14:01:05
175
原创 C++函数名称的修饰规则
C++函数名称修饰规则int Add(const int a; const int b) {return a+b;}long Add(const long a,const long b ) { return a+b;} double Add(const double a, const double b) { return a+b;}在函数重载中就提到过,上面两个函数同时出现在C环
2017-10-23 12:15:58
1031
原创 函数的缺省参数与函数的重载
缺省函数缺省函数是声明或者定义函数时为函数的参数指定一个默认值,在调用该函数的时候如果没有指定实参就采用该默认值,不然就使用指定的实参全缺省函数void funtest(int P1 = 1, int p2 =2) { } int main() {//int a = 10;//int b = 20;funtest(a,b);//如果不给a,b赋值,那么a = 1,b = 2;赋值的话便为
2017-10-23 11:07:00
414
原创 在网上查找到的单链表试题
.逆向打印单链表void printlistback(Node* head){if (NULL == head) return;printlistback(head->next);printf("%d--->", head->data);}.删除一个无头单链表的非尾节点void DeleteNotTailNode(Node* pos) {Node* Ppos = NULL;asse
2017-10-11 15:05:39
183
原创 单链表的后续操作
之前的代码typedef int Datatype;typedef struct node {Datatype data;struct node* next;}Node;void Initlist(Node** p) {*p = NULL;}Node* buynode(Datatype data) {Node* p = (Node*)malloc(sizeof(struct node))
2017-09-27 15:09:07
268
原创 C语言实现单链表的简单操作
对于单链表的使用,最重要的内容就是对于指针的熟练使用,在这里我会讲到我第一次使用单链表时用到的一些基本操作 头删,尾删,头插,尾插在后续的文章中会讲到一些后续的单链表的操作,比如单链表的逆序,逆序输出#include #include typedef int Datatype;typedef struct node {Datatype data;struc
2017-09-27 14:13:24
330
原创 近期学习总结
最近学习到了指针这一块的内容,学习指针的时候 只有一个感受,头有点疼。首先,说到指针,他就是一个地址,指向已经开辟好的一块空间,int num = 10; int *p = #这里的P就是一个指针,指针是一个地址,这个地址有能力指向一个整形,还有比如 char*p,float *p, 因为指向的内容不同,访问的权限不同,所以指针也必须有类型来指向这些空间,这就是指针的类型
2017-06-03 20:08:51
195
翻译 学习小结
经过前面一段时间的学习,学习到了 一系列的str : strlen,strcat,strcmp,strcpy,strstr.学习到这里的时候 感觉 程序语言其实也是挺有趣的。前天学习到内存分配的时候{栈:局部变量,形式参数。堆:动态内存。静态区:静态变量和全局变量。}学习到了一个新的知识:动态内存。而为什么要提到动态内存,因为在我们进行 编译的时候,一个数组的长度
2017-04-17 19:17:39
226
原创 文章标题
大家好,我姓罗,身高170,体重保密,未婚,大家可以叫我胖子,给个面子叫一声胖哥也行。今年已经是大三了,可是对编程还是不熟悉,怀着一个对未来的恐惧以及一颗想成功的心,我来到了csdn这个大家庭,希望大家多多照顾。 虽然大三,可是现在的我也是个小白,时间很赶,但是一个想要成功的心不能改变,所以只能每天多花时间在学习上,希望以后有问题各位大神不要嫌弃,也希望各位大神能够给我推荐几本书,谢谢。 希望在
2017-03-17 08:54:14
340
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人