● C/C++
LinJie98
开源 分享 快乐
展开
-
自写选票系统--C实现
一、题目要求 1.题目描述 从100名优秀运动员中评选出10名最佳运动员。具体规则如下。 (1)运动员号按1、2、3…..顺序编号; (2)由键盘接受所收到的选票,每张选票至多可写10个不同的编号; (3)对应名次的运动员编号可以有空缺,但必须用0表示; (4)若编号超出规定的范围,或编号出现重复,作废选票; (5)按选票中所列最佳运动员顺序给他们计分,计分原创 2017-03-10 13:35:03 · 2570 阅读 · 0 评论 -
C++(笔记)三种继承机制
在实际编程中其实公有继承占绝大多数,但其他也是都需要了解的 首先要知道子类继承了基类的所以数据成员和全部函数成员(除了构造、析构器),但它们的继承方式不同,访问权限也会不一样 明确访问有两种: 1.子类中的新增成员访问从基类继承的成员 2.子类外部(非类族内的成员)通过子类的对象访问从基类继承的成员 注意:不管哪种继承方式,子类都不能直接访问基类的私有成员一、public继承(公原创 2017-04-08 21:37:03 · 2340 阅读 · 0 评论 -
C++(笔记)浅析运算符重载&实例
一、什么是运算符重载 重载的运算符是具有特殊名字的函数:它们的名字由关键字operator和其要定义的运算符共同组成。例如:operator+()。和其他函数一样,重载的运算符也包含返回类型、参数列表、函数体 函数类型 operator运算符符号(形参列表) { 对运算符的重载处理 }二、为什么要运算符重载1.运算符原创 2017-04-28 22:52:42 · 1350 阅读 · 0 评论 -
C++(笔记)重载运算符简单合并操作
定义一个复数类Complex,重载加号”+”,重载为友元函数,使其能实现一个复数和一个浮点的加法操作,重载输出运算符“<<”,使其能输出一个Complex对象。 #include <stdio.h> #include <stdlib.h> #include <string.h> #include <time.h>#include <math.h>#include <cmath>#i原创 2017-04-28 22:59:02 · 2151 阅读 · 0 评论 -
C++(笔记)子类构造器初始化&执行顺序问题
一、子类中的构造器(一).关于初始化问题 1.对子类新增成员进行初始化,必须添加子类的构造器 2.对基类成员初始化,必须是基类构造器完成(因为基类数据成员一般继承都是private,子类对它不能有所作为),这一点必须明白!(二).关于如何初始化 当使用子类就要用到子类的对象,但对象必须初始化(包括默认构造器来初始化),那么问题来了!!初始化是对子类的所以数据成员初始化(这里原创 2017-04-19 16:58:04 · 3659 阅读 · 0 评论 -
C++(笔记)虚方法
一、使用&特性 1.可在任何方法上添加virtual,例:virtual void play(); 2.继承性:一旦基类中为虚函数,子类将不会为非虚函数 3.优缺性:声明虚方法除了使程序慢一点点以外,没有任何缺点二、说说为什么要用虚方法 因为当我们使用基类的引用或指针调用基类中定义的某个函数时,我们并不知道该函数真正的对象是什么类型(属于哪个类),因为它可能是一个基类的对象,也原创 2017-04-21 12:49:20 · 4792 阅读 · 0 评论 -
C++(笔记)浅析菱形继承&虚继承底层内存占用
一、什么是菱形继承二、代码实现#include <stdio.h> #include <stdlib.h> #include <string.h> #include <time.h>#include <math.h>#include <cmath>#include <iostream>using namespace std;class A{public: void run(原创 2017-05-04 11:09:54 · 1436 阅读 · 0 评论 -
DEV-C++自动补充缺省源文件&各种C/C++头文件
一、解决DEV-C++自动补充缺省源文件工具->编辑器选项->这样就可以加头文件了哈---二、C/C++各种头文件C#include //设定插入点#include //字符处理#include //定义错误码#include //浮点数处理#include //对应各种运原创 2017-04-23 23:11:47 · 18133 阅读 · 2 评论 -
C++(笔记)纯虚函数(抽象类)
一、纯虚函数定义 1.纯虚函数是在基类中声明的虚函数,首先最起码是在基类中的虚函数 2.纯虚函数在基类中是没有定义的,这里指基类,但任何子类中都要定义该纯虚函数的实现方法 3.在基类中实现纯虚函数的方法是虚函数原型后加“=0”,例如: virtual void function()=0;为什么要引入纯虚函数? 1.因为当你顶级基类A有一虚函数play();,而A的子类B也原创 2017-04-24 16:13:26 · 1334 阅读 · 0 评论 -
C++(笔记)浅析vector容器的实例
一、什么是vector 向量(Vector)是一个封装了动态大小数组的顺序容器(Sequence container)。跟任意其它类型容器一样,它能够存放各种类型的对象。可以简单的认为,向量是一个能够存放任意类型的动态数组。 二、容器特性1.顺序序列 顺序容器中的元素按照严格的线性顺序排序。可以通过元素在序列中的位置访问对应的元素。2.动态数组 支持对序列中的任意元素进行快速直接访问原创 2017-05-15 22:36:59 · 10473 阅读 · 10 评论 -
C++(笔记)容器(vector)作为函数参数如何传参
一、大致以下类型 void 函数名( vector< int> obj ); void 函数名( vector< int>* pobj ); void 函数名( const vector< int>* pobj ); // 在函数内不能改变 pobj 指向的对象 ,//调用时不会调用拷贝构造函数 void 函数名( vector< int>& obj ); void原创 2017-05-17 17:51:54 · 108200 阅读 · 16 评论 -
C++(笔记)文件操作练习(流类库与输入输出)
1、什么叫做流?流的提取和插入是指什么?I/O流在C++中起着怎样的作用? 解: 流是一种抽象,它负责在数据的生产者和数据的消费者之间建立联系,并管理数据的流动,一般意义下的读操作在流数据抽象中被称为(从流中)提取,写操作被称为(向流中)插入。操作系统是将键盘、屏幕、打印机和通信端口作为扩充文件来处理的,I/O流类就是用来与这些扩充文件进行交互,实现数据的输入与输出。2、 cerr和c原创 2017-05-28 16:38:09 · 11423 阅读 · 2 评论 -
C++ sort排序函数用法
最近在刷ACM经常用到排序,以前老是写冒泡,可把冒泡带到OJ里后发现经常超时,所以本想用快排,可是很多学长推荐用sort函数,因为自己写的快排写不好真的没有sort快,所以毅然决然选择sort函数用法 1、sort函数可以三个参数也可以两个参数,必须的头文件#include < algorithm>和using namespace std; 2、它使用的排序方法是类似于快排的方法,时间复原创 2017-07-27 21:35:06 · 249069 阅读 · 27 评论 -
stack栈(STL)
1.头文件:#include <stack>2.构造一个空栈:stack<elem>s;3.返回栈顶数据:s.top();4.在栈顶增加数据:s.push(elem);5.弹出栈顶元素:s.pop();6.判断栈是否为空:s.empty();若空返回true7.返回栈中数据个数:s.size();#include <cstdio>#include <stack>using namespace s原创 2017-12-04 21:53:48 · 393 阅读 · 0 评论 -
C---函数指针
函数与指针的结合原创 2016-12-13 21:51:30 · 411 阅读 · 0 评论 -
C---基础动态分配
方法一:#include "stdio.h"#include "stdlib.h"//动态分配所需的头文件int main(){int i, n;int *p=NULL;//给指针p一个随机值,当然这个随机值也可以不用,试验过了printf("请输入i:");scanf("%d", &i);p = (int *)malloc(i);//malloc开内存fo原创 2016-12-18 21:02:17 · 419 阅读 · 0 评论 -
C++(笔记)友元函数、const基础练习
/*定义一个类Cat,包含一个私有成员变量weight,设置好weight的存取函数。定义一个类Dog,包含一个私有成员变量weight,设置好weight的存取函数。定义一个原型如 int getTotalWeight(const Cat &c,const Dog &d)的函数,使其成为Cat 和Dog的友元函数,用来计算一只猫和一只狗的重量和。完成两个类和函数的定义并进行测试。*/#原创 2017-03-30 11:09:27 · 1524 阅读 · 0 评论 -
C++(笔记)浅谈protected
一个类使用protected关键字来声明是希望与派生类分享但是不想被其他公共访问使用的成员。所以protected可以看做public和private的中间产物解析protected 1.类似于私有成员,受保护的成员对于类的用户(类的用户即类的对象)来说是不可访问的,也就是说可以通过类的成员函数访问而不能通过类的对象来访问 2.类似于公有成员,受保护的成员对于派生类的成员和友元来说是可访原创 2017-04-06 22:50:29 · 11432 阅读 · 0 评论 -
C++(笔记)const char *p/char *const p/const char *const p理解
三者区别 const char *p1—不可以改变值 char *const p1—不可以改变p指向的地址 const char *const p1—都不可以改变 const char *p1#include <iostream>#include <string>using namespace std;int main(){ char i='x';原创 2017-03-29 11:47:45 · 1953 阅读 · 1 评论 -
C++(笔记)深浅拷贝and静态static基础练习
/* 定义一个Data类,里面包含一个指针型成员变量 int *data,和一个普通成员变量 int x。在类的构造函数里面给 data申请存放100个int 的空间,在析构函数里释放空间。为Data类的data变量设置存取函数。为Data类重新拷贝构造函数。对完成的类进行测试。*/#include <iostream>using namespace std;class Data{原创 2017-03-23 22:51:27 · 750 阅读 · 0 评论 -
C++(笔记)深浅拷贝and何时调用
一、何时调用拷贝函数 何时会调用拷贝函数? 1、对象在创建时使用其他的对象初始化 Person p(q); //此时复制构造函数被用来创建实例p Person p = q; //此时复制构造函数被用来在定义实例p时初始化p 2、对象作为函数的参数进行值传递时 f(p); //此时p作为函数的参数进行值传递,p入栈时会调用复制构造函数创建一个局部对原创 2017-03-23 22:23:44 · 2010 阅读 · 0 评论 -
C++(笔记)解释继承机制中构造器与析构器
一、继承机制中构造与析构应用代码#include <iostream>#include <string>using namespace std;class Animal{//这里不给name私有原因是,主函数中子类访问了name,因为子类不能访问基类的私有成员,所以这里不给name私有 // private: // string name; public:原创 2017-03-21 21:34:41 · 1055 阅读 · 1 评论 -
C++(笔记)浅谈什么是继承机制
一、继承理解 好比windows窗口,每一个窗口都有关闭缩小放大等按钮,因为它们都是遵循同一个母亲继承下来的二、核心 继承机制使程序员可以创建一个类的堆叠层次结构,每个子类均将继承在它的基类里定义的方法和属性。 什么是堆叠层次结构? :继承原有的属性和方法,再另外增加一些属性和方法 继承机制有什么用? :通过继承机制,程序员可以对现有的代码进行进一步的扩展 什原创 2017-03-17 17:14:54 · 1244 阅读 · 0 评论 -
C++(笔记)string,类的组合练习
//1. 定义一个Cat类,包含一个名字属性,用string对象存放该属性,编写存取该属性的函数,并进行测试。#include <iostream>#include <string>using namespace std;class Cat{ public: void setname(string newname); void getname();原创 2017-03-16 09:30:27 · 1525 阅读 · 0 评论 -
C++(笔记)类、构造器基础
一、创类1.类的特征 1.类:决定一个对象将是什么样的(具备什么属性和功能) 2.类包含什么: 属性(特征,成员变量)和方法(功能操作,成员函数)2.类的成员访问 1.类内访问:通过成员函数(不限) 2.类外访问:对象、对象指针(公有)3.类的类型 1.公有类型(一般是方法):public关键字声明,该类型成员定义了类的外部接口,在类外只能访问该类的公有成员 2.私原创 2017-03-10 13:02:24 · 1055 阅读 · 0 评论 -
C++(笔记)类实例
//定义一个Person类,成员变量age(年龄),和name(姓名),成员函数getName(),getAge(),setAge(int newAge),完成该类测试#include <iostream>#include "Person.h"using namespace std;int main(){ Person p; p.getName(); p.setAge(原创 2017-03-09 22:26:05 · 1539 阅读 · 0 评论 -
C++(笔记)课堂基础练习
new,vector,重载,引用,基础练习//1. 定义一个 函数名为 fun的内联函数,参数随意设置,并在main函数中测试该函数。#include <iostream>using namespace std;inline int fun(int i){ return i*i;}int main(){ int h; h=fun(2); cout<<h<<原创 2017-03-02 09:23:33 · 531 阅读 · 0 评论 -
C++(笔记)联合、枚举
一、联合(union)1.定义 联合与结构相似,也可以容纳不同类型的值,但每次只能存一个值,若在容纳另一个值将会把前面的值覆盖调(即:多个变量使用同一个内存空间,但内存空间只有1个,所以要这些变量在不同时间用才行)2.结构 union mima//这里和结构体类似,就是吧struct改为union { unsigned long birthday; uns原创 2017-02-25 16:42:05 · 622 阅读 · 0 评论 -
C++(笔记)输入输出总结
一、输出流(cout) cout 是一个对象 是一个输出流对象,它是“console out(控制台输出)”的缩写,它 属于basic_ostream类的对象。ostream类在iostream头文件中定义 什么是输出流?例如数据可以从键盘流入程序,又可以从程序流向屏幕,打印机等,动态的二、using namespace std;解析 1.这条指令带给我们一个全新的概原创 2017-02-20 21:45:05 · 1000 阅读 · 0 评论 -
C---二分查找来插入数据
用二分查找来插入数据原创 2016-12-27 22:32:49 · 1292 阅读 · 0 评论 -
C++ 重写String类
一、运行环境codeblocksgcc version 4.9.2 (tdm-1)二、String内部描述1、构造方法 构造方法 描述 String(char *s,int len) 构造方法初始化数据2、功能描述 成员方法 描述 char *getStr() 获取当前的String(打印)...原创 2018-05-26 20:48:56 · 2796 阅读 · 0 评论