![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++
lm_123_456
本人热爱学习新技术,有良好的自学能力,热爱编程,有责任心,执行能力强,对待生活积极向上,乐观,为人诚恳,积极接受困难和挑战
展开
-
C++编程思想第二章练习答案
1.修改Hello.cpp,使它能打印你的名字和年龄(或你的鞋码,爱犬的年龄等,只要你喜欢)。编译并运行修改后的程序 修改前的Hello.cpp#include <iostream>using namespace std;int main(){ cout<<"Hello, World! I am "<< 8 <<" Today!"<<endl;} 输出结果为: [roo原创 2016-04-06 19:47:20 · 969 阅读 · 0 评论 -
C++大数类 大数模版
转自:http://blog.csdn.net/hackbuteer1/article/details/6595881分别使用C++中的运算符重载的方法来实现大数之间的数学运算,包括加法、减法、乘法、除法、n次方、取模、大小比较、赋值以及输入流、输出流的重载。。 并且使用这个大数模板,顺利AC了HDOJ上的1134这个题目的Catalan数计数问题。。http://acm.hdu.edu.c转载 2016-06-18 23:19:29 · 944 阅读 · 0 评论 -
Polymorphism in C(用C实现多态)
最近一直喜欢浏览国外网站,感觉收获很多,所以我跟苞谷说,看中文网站是无奇不有,看外文网站才知道世界之大.Polymorphism in C是我摘抄+修改+体会+翻译过来的好东东.有助于理解多态. 多态是什么?就是我们调用一个公共接口(相同函数名字)时,根据调用者的类型调用不同的函数,看过我之前写的C++向C的转化的人其实知道,函数名字相同只是我们肉眼看见的相同,编译器优化后,意味函数所属的clas转载 2016-09-13 08:19:39 · 453 阅读 · 0 评论 -
qsort函数用法
作者:syxChina 出处:http://syxchina.cnblogs.com、 www.jingruigroup.comqsort 功 能: 使用快速排序例程进行排序 用 法: void qsort(void base, int nelem, int width, int (*fcmp)(const void ,const void *)); 各参数:1 待排序数组首地转载 2016-09-05 16:02:09 · 267 阅读 · 0 评论 -
宏在C++中的替代解决方案
宏,在C语言中是个神的存在,能够玩出各种花样,也正因为此,才会给普通程序员造成不少的困扰。由于宏只在预编译阶段起作用,使得编译器无法检测其中的Bug,作为新时代的C++程序员,还是远离的好。C++为宏提供了一些替代的解决方案,嗯,是一些。常量定义#define NUM 100《EffectiveC++》的第一个条款,讨论的就是这个宏。由于宏是预编译程序来处理,所以NUM这个名字不会加入到符号表转载 2016-09-23 09:18:24 · 3631 阅读 · 0 评论 -
c++学习之赋值兼容规则
规则一: 派生类的对象可以给基类对象赋值(因为在继承的时候c继承了父类的信息,可以在进行了对象切片后给子类中相应的父类信息段赋值) eg:class base{public: base(){} ~base(){}public: int x;};class D : public base{public: D(){} ~D(){}public:原创 2016-04-13 22:09:14 · 631 阅读 · 0 评论 -
C++继承的相关概念
继承最主要的作用是实现多态*无论是哪种继承,对象都不能访问父类的私有成员公有继承#include <iostream>using namespace std;class base{private: int x;};class D : public base //D公有继承父类base{public: int y;};int main(){ cout << s原创 2016-04-11 15:35:04 · 263 阅读 · 0 评论 -
C++细节——static类成员使用注意
转自http://blog.csdn.net/iaccepted/article/details/6993196对于某一特定类类型的全体对象我们需要访问一个共同的变量,这个时候我们通常是在类的声明中声明一个静态变量即static变量。当然可以用一个全局变量来代替,但是用全局变量是一个很不好的习惯,重要的一点就是全局变量会破坏类的封装。然而类中static变量不像普通变量,它独立与该类的任意对象而存在转载 2016-12-10 11:48:32 · 286 阅读 · 0 评论 -
C++之拷贝构造函数
通过按值传递的方式传递一个对象时,就创立了一个新对象,函数体内的对象是由函数体外的原来存在的对象传递的。当编译器需要从现有的对象创建新对象时,可以通过定义自己的函数来实现,因为需要创建新的对象,因此这个函数应该是构造函数,并且传递给这个函数的单一参数必须是创立的对象的源对象,但是该对象不能以按值传递的方式传入构造函数,而是需要以引用的方式来传递,可以使用源对象的引用,这个就是拷贝构造函数拷贝构造函数原创 2016-12-25 20:10:48 · 221 阅读 · 0 评论 -
C++之指向成员的指针
指针是指指向一些内存地址的变量,可以是数据的地址,也可以是函数的地址。同样,C++的成员指针也遵从同样的概念。但是,C++的成员指针只能指向类内部的成员,并且在类内部是没有地址的; 因此,成员指针要求选择一个对象的同时间接引用成员指针。以下的例子可以说明如何建立和使用指向数据成员的指针:#include <iostream>using namespace std;class Data{publi原创 2016-12-26 19:02:09 · 472 阅读 · 0 评论 -
C++大数运算
#include<cstdio> #include<iostream> using namespace std; const int maxn = 200; struct bign{ int len, s[maxn]; bign() { memset(s, 0, sizeof(s));转载 2016-06-18 23:07:24 · 636 阅读 · 0 评论 -
关于hash的一个面试题
现在有一个用来存放整数的Hash表,Hash表的存储单位称为桶,每个桶能放3个整数,当一个桶中要放的元素超过3个时,则要将新的元素存放在溢出桶中,每个溢出桶也能放3个元素,多个溢出桶使用链表串起来。此Hash表的基桶数目为素数P,Hash表的hash函数对P取模。 其代码定义如下:#define P 7#define NULL_DATA -1struct bucket_node {原创 2016-05-08 22:26:59 · 922 阅读 · 0 评论 -
成员函数的重载,覆盖和隐藏
什么是函数重载: 在C++程序中,可以将语义,功能相似的函数用同一个名字表示,即就是函数重载。函数重载的原因: (1)便于记忆,提高函数的易用性; (2)类的构造函数需要重载机制;(因为c++规定构造函数与类同名,构造函数只能有一个名字,若要有不同的方法创建对象,只能依靠重载)成员函数被重载的特征: (1原创 2016-04-13 15:17:52 · 362 阅读 · 0 评论 -
多态的简单应用
以下是多态的简单应用:通过父类的纯虚函数来实现多态#include <iostream>using namespace std;class Object{public: Object() {} ~Object() {}public: virtual void Print()const = 0;};class List;class Listnode{原创 2016-04-13 09:32:17 · 235 阅读 · 0 评论 -
c++学习之同名隐藏
同名隐藏: 子类中具有和父类同名的函数(不管参数)时,子类的该方法将会隐藏掉所有的父类的同名方法;class base{public: base(){} ~base(){}public: void show() { cout << "base :: show()" <<endl; } void show(int x) {原创 2016-04-13 20:55:46 · 1009 阅读 · 0 评论 -
多态与虚函数的使用
多态的实现:必须通过父类的指针或父类的引用来实现多态的实现的前提: 1.多态得存在于继承体系中 2.多态的实现必须存在虚拟(virtual)关键字 例如: > class base { void show() { } }原创 2016-03-28 18:47:10 · 349 阅读 · 1 评论 -
派生类中重新定义虚函数及虚函数的注意事项
在派生类中重新定义虚函数时,不需加关键字virtual但是必须要和父类中的同名,同返回类型,同参数列表例外 父类可以返回父类指针 派生类可以返回派生类指针class base{public: base* show() { cout<<"this is base show()!"<<endl; return this; }};c原创 2016-03-28 22:10:35 · 9425 阅读 · 1 评论 -
C++实现一个简单的红黑树(RB_TREE)
红黑树遵守的规则:一头(根)一脚(叶子节点)黑(黑色),黑同(从任意节点开始至根结点的黑色节点的个数相等)红不连(红色节点不能相连)以下是红黑树的插入和旋转函数的简易实现:#include <iostream>#include <assert.h>#include <string.h>using namespace std;typedef int Type;typedef enum{RED=0原创 2016-05-10 21:51:49 · 1899 阅读 · 1 评论 -
int 运算符重载
为了更深入的理解返回引用和对象,以及运算符重载,做了int的运算符重载: #include <iostream>using namespace std;class Int;ostream& operator<<(ostream &out, const Int &i);class Int{ friend ostream& operator<<(ostream &out, const I原创 2016-04-18 19:11:35 · 1653 阅读 · 1 评论 -
用类对象初始化int,double 等类型的变量
如何将一个类赋值给一个int,double等型的变量,可以采用重载类型的方法解决,如下: 1.没有重载int类型之前:#include <iostream>using namespace std;class Test{public: Test(int d = 0):data(d) { } ~Test() { }public: voi原创 2016-04-20 19:08:57 · 1195 阅读 · 0 评论 -
致自己
(1)赋值函数的书写步骤: a.判断是否是自身赋值; b.释放原有空间; c.开辟新空间并赋新值; d.返回自身对象; eg: String& operator=(const String &str) { cout<<"Assign: "<<this<<endl; /原创 2016-04-19 16:27:39 · 897 阅读 · 0 评论 -
虚基类与虚拟继承
虚拟继承: 顾名思义就是继承了但不给开辟空间;class B0 //此段代码中B0就是虚基类{public: B0() : m(0) {}public: int m;};class B1 : virtual public B0 //B1虚拟继承B0{public : B1() : n(0) {}public: int n;原创 2016-04-13 19:49:51 · 595 阅读 · 0 评论 -
new 操作符和 new 操作的区别
转自http://blog.csdn.net/linuxarmsummary/article/details/40787143操作符(new operator) 和 new操作(operator new)的区别。 当你写这样的代码: string *ps = new string(“Memory Management”); 你使用的 new 是 new 操作符。这个操作符就象 sizeof 一转载 2017-03-23 13:41:23 · 1675 阅读 · 0 评论