C++
m0_37579906
愿历尽风帆,归来仍少年
展开
-
C++ 函数模板
函数模板:函数定义存在未知类型模板函数:函数调用,实参确定类型1、在C语言中:#include <iostream>using namespace std;int add(int a,int b){ return a+b;}double add(double a,double b){ return a+b;}char add(char a,char...原创 2018-08-18 16:47:55 · 149 阅读 · 0 评论 -
C++ 简单实现链表模板类
目的在于熟悉 C++ 实现链表类、熟悉模板类#include <iostream>#include <stdio.h>#include <string.h>using namespace std;//前置申明模板类template <class T>class List;//定义节点模板类template <cl...原创 2018-08-25 17:35:29 · 2783 阅读 · 2 评论 -
C++ 类模板、模板类、定义标准输入\输出
模板思想实现与类型无关,只与功能实现有关. 类模板:定义类时数据类型不定 模板类:使用类实例化对象,指定类型.构建一个具体对象#include <iostream>#include <stdio.h>#include <string.h>using namespace std;class Student{ friend istream&...原创 2018-08-25 17:10:54 · 2129 阅读 · 0 评论 -
C++ 多态、虚函数、抽象类、虚表(二)
虚表深入探究:#include <iostream>#include <stdio.h>using namespace std;typedef void (*PTR_FUN)();class Base{private: virtual void fun() { cout<<"Base fun"<<endl; } ...原创 2018-08-25 00:36:38 · 173 阅读 · 0 评论 -
C++ 多态、虚函数、抽象类、虚表(一)
多态:派生类继承基类,派生类重写(覆盖)基类的虚方法.实现派生类个性. 基类提供统一接口虚函数,派生类都有不同的实现. 实现多态必同时满足如下三个条件: 1.必须是公有继承 2.基类的方法必须是虚方法 3.必须是通过基类指针或引用调用基类方法 虚函数:存储在虚表(vtable),派生类继承虚表覆盖虚表的基类虚函数 覆盖(override):派生...原创 2018-08-24 23:37:32 · 212 阅读 · 0 评论 -
C++ 继承深入理解(二)
多继承:一个派生类继承多个基类#include <iostream>#include <stdio.h>using namespace std;class Base1{public: Base1(int _a) { cout<<"Base1"<<endl; a=_a; }private: int a;};cla...原创 2018-08-24 21:58:41 · 280 阅读 · 0 评论 -
C++ 继承深入理解(一)
继承:子类继承父类,子类的对象可以直接访问父类公有或保护成员 继承最大特点提高代码重用,也体现代码的共性与个性 派生类:继承父类的子类 基类:被继承类(父类) 继承语法: 派生类 : [继承方式] 基类 继承方式: 1.private:私有继承.默认为此继承方式.不能继承基类的私有成员. ...原创 2018-08-24 19:10:15 · 192 阅读 · 0 评论 -
C++ 中的const、static、单例模式
只读(const):只读对象:只读变量,表示对象的数据成员不能被类的成员函数修改。 只读数据成员:构造函数中用列表方式初始化。 只读函数成员:在函数中不能修改对象的数据成员,只读成员函数只能调用只读成员函数. mutable 修饰的成员变量是可以在只读的成员函数中修改 #include <iostream>#include <std...原创 2018-08-19 14:27:59 · 322 阅读 · 0 评论 -
C++ 构造函数 拷贝构造 析构函数
构造函数(constructor):在实例对象时,系统自动调用,用来初始化对象的数据成员 构造函数声明语法: 类名(参数列表); 构造函数注意点: 函数名必须是类名 无返回值类型 不同参数列表 可以是私有 一个类可以存在多个不同形式的构造函数(构造函数可以重载)#include <iostream>#include <stri...原创 2018-08-19 10:13:34 · 176 阅读 · 0 评论 -
C++ 动态分配内存 new/delete new[]/delete[]
c++实现动态创建对象(分配内存)使用: new/delete 符号 new operator new[]/delete[] 符号 new[] operator new:分配一块空间 new[]:分配一段连续内存空间 delete:释放一块空间 delete...原创 2018-08-18 18:17:41 · 224 阅读 · 0 评论 -
C++引用
引用:对已经存在变量另取别名,并没有分配新的空间 引用变量定义: 被引用空间数据类型 & 引用变量名=被引用空间; const 被引用空间数据类型 & 引用变量名=被引用空间; 引用变量与指针区别: 1.引用变量不占用空间,指针占用4个字节 2.引用变量必须初始化,指针不一定 3.引用变量不能改变引用,指针可以改变指向 引用变量一般用来...原创 2018-08-18 17:36:56 · 112 阅读 · 0 评论 -
C++ 函数重载
函数重载(overload): 在一个类中,函数名相同,参数列表不同(参数数据类型和个数) 函数重载好处 : 针对相同功能,减少函数名称不同c++函数重载没有改变 c语言只能根据函数名区分 本质: c++编译后对原有函数名作更改: 函数名_第一个参数类型_第二个参数类型_.... int add(int a,int b) 编译后函数名成为:add_int_int double ad...原创 2018-08-18 17:06:59 · 117 阅读 · 0 评论 -
C++ 内联函数
1、内联函数(inline): a.函数声明 定义一起完成 b.定义时使用inline修饰2、一般函数调用: 1.寻址函数跳转 2.保存当前函数堆栈 3.被调用函数分配堆栈 4.返回到原来函数执行地址,回复堆栈数据3、内联特点: 1.调用函数时,用函数语句替换调用函数语句.实际上交就不存在函数调用.类似于宏替换 内联函...原创 2018-08-18 16:59:54 · 128 阅读 · 0 评论 -
C++ 符号重载
符号重载:c++符号增加支持自定类型的操作数.实际是一个特殊函数.函数名为:operator 符号 c++ 支持可重载符号: 算术运算符:+,-,*,/,%,++,-- 位操作运算符:&,|,~,^,<<,>> 逻辑运算符:!,&&,||; 比较运算符:<,>,>=,<=,==,!=; 赋值运算符:=,+=,-=,*=,/=,%=,&am...原创 2018-08-25 19:30:55 · 6889 阅读 · 0 评论