
c++
文章平均质量分 73
nullcanon
健忘症患者的云端笔记
展开
-
函数重载
1. 什么是函数重载?我们在写作、说话的时候,根据上下文的不同,同一个词可以代表不同的含义,这样的一词多义,我们叫它重载。c++中,在同一作用域里,如果有多个功能相似的同名函数,这些函数的参数列表(参数的个数、类型、顺序)必须不同,返回值类型可以不同,这样的函数我们叫做重载函数。例如:要实现一个加法运算,可以通过函数重载实现。int Add(int a,int b){ return a+b原创 2017-10-18 17:58:55 · 227 阅读 · 0 评论 -
继承
1.什么是继承? 继承是面向对象编程提供可重用代码的重要手段 ,它允许我们在保持原有类特性的基础上,对原有类进行拓展和修改派生出新的类,从已有类(基类/父类)派生出新的类称为派生类(子类)。 继承类定义的格式:class 派生类名称:继承类型(pub/pro/pri) 基类名称 其继承类型有三种:public,private和protected,默认为private。2.派生类的特征派生类必原创 2017-11-15 15:33:11 · 204 阅读 · 0 评论 -
C++内联函数
C++内联函数宏和内联在C语言中,使用宏可以不要普通函数调用代价(传参,函数栈)。宏的实现是在预处理阶段,预处理器使用宏代码直接替换宏调用,合理使用宏仅花费一小部分空间就是可以完成函数的功能,增加了程序的便利性和可读性。 但是,宏还是有很多的缺点:没带括号发生的边界问题变量自增自减引发的二义性问题不利于调试更重要的一点是C++预处理阶段并不能访问类的成员数据所以,c++引入了内联函数,内原创 2017-12-11 17:09:39 · 594 阅读 · 0 评论 -
C++类型转换
C++类型转换隐式类型转换隐式类型转换发生在以下情况:在混合类型的算术表达式中,为了防止精度丢失,这种情况最宽的数据类型称为目标转换类型,这也被称为算术转换,例如int+double被转换成double 在进行整值提升时char , signed char , unsigned char , 和short int 都被提升为int ,,枚举类型被提升为能够表示其底层类型所有值的最小整数类型用一原创 2017-12-10 21:26:02 · 202 阅读 · 0 评论 -
多态性和虚函数
1.什么是多态性?多态性(c++中虚函数实现)是面向对象程序设计语言中数据抽象和继承之外的第三个基本特征。它是同一个事物在不同场景下的多种形态。例如c++中的可以定义同名函数实现不同的功能。 c++中多态分为静态多态和动态多态。静态多态是程序在编译期间就完成函数调用,例如函数重载和泛型编程;动态多态在程序执行期间判断所引用对象的实际类型,根据其实际类型调用相应的方法,例如虚函数。2.虚函数使用vi原创 2017-11-16 16:29:25 · 842 阅读 · 0 评论 -
Next Permutation-leetcode下一个排列组合
问题描述: Implement next permutation, which rearranges numbers into the lexicographically next greater permutation of numbers. If such arrangement is not possible, it must rearrange it as the lowest pos原创 2017-11-30 18:46:13 · 264 阅读 · 0 评论 -
static关键字总结
1.C语言中的staticstatic变量:局部变量:改变了变量的存储方式(生命周期),使它存储于静态区中,在编译期间就分配内存,在整个程序执行期间一直存在。但是变量的作用域保持不变。 全局变量:改变了变量的链接属性,即变量只在本文件中有效。static函数:改变了函数的连接属性,即函数只在本文件内部有效,其他文件不可见。已初始化的静态变量保存在 .data段。未初始化的静态变量,编译器将自动初始原创 2017-11-02 23:19:42 · 211 阅读 · 0 评论 -
深拷贝and浅拷贝
浅拷贝:当调用拷贝构造函数时,编译器默认会对数据成员逐一进行赋值,但当这些数据中如果有指针,这样的赋值会让多个指针指向同一块内存空间,这样多个对象会共用同一块内存空间,如果释放了一个对象指向的内存,而另一个对象并不知道这块内存已经释放而去访问,这样会产生错误。 深拷贝:为了解决浅拷贝存在的问题,需要显示的定义拷贝构造函数,使得每个对象都有自己的内存空间。原创 2017-11-05 14:22:48 · 157 阅读 · 0 评论 -
const关键字总结
在C语言中,const限制变量是只读的,C语言对待const如同变量,只是加了一个只读属性,在编译期间一定会创建内存空间。指针常量:指针本身的值不变,指针指向的值可变,也就是说它只能指向某一个值。int a = 10;int b = 20;const int *p = &a;//指针常量// int const *p;//也是指针常量p = &b;//非法*p = 20;//合法常量指针原创 2017-11-04 22:36:59 · 198 阅读 · 0 评论 -
C++对象模型(二)多继承
3.多继承模型 看下面代码:class Base1{public: Base1():_b1(1) {} virtual void fun1() { cout<<"Base1::fun1()"<<endl; } virtual void fun2() { cout<<"Base1::fun2()"<<endl原创 2017-11-18 21:55:23 · 266 阅读 · 0 评论 -
C++对象模型(一)单继承
1.无虚函数的单继承class A{public: A():_ai(1){} void Afun(); static void static_fun(); static int _val;private: int _ai;};class B:public A{public: B():_bi(2){} void Bfun();pri原创 2017-11-17 17:33:36 · 241 阅读 · 0 评论 -
this指针详解
什么是this指针?c++类的成员函数和c语言的函数一样,编译器会改变函数的名称,并为它增减参数(this指针),所以类中并没有储存成员函数信息。但当对象调用函数时,编译器可以确定这些函数的地址。例如下面代码:#include<iostream>using namespace std;class Date{public: Date(int year,int month,int day)原创 2017-10-24 15:45:30 · 591 阅读 · 0 评论 -
引用和指针
1.什么是引用?2.引用的应用 2.1引用作为函数参数 2.2引用作为返回值 2.3引用和const 2.4常引用3.引用和指针的异同原创 2017-10-20 16:13:35 · 231 阅读 · 0 评论 -
类的默认成员函数
c++类会默认生成6个成员函数:构造函数拷贝构造函数析构函数赋值操作符重载取地址操作符重载const修饰的取地址操作符重载例如:class Test{public: Test(); //构造函数 Test(const Test&); //拷贝构造函数 ~Test();原创 2017-10-29 20:05:00 · 1225 阅读 · 0 评论 -
c++知识总结
思维导图:原创 2017-12-24 15:00:34 · 194 阅读 · 0 评论