C++三大特性--多态

多态的概念 多态的分类 C++中多态的实现原理 一、多态的概念 在说多态之前,我们来先看一看对象的类型 来看一个例子: 多态:意思既是同一个事物的多种形态,用我们C++的专业词语来说就是:一个借口、多种实现方式。 二、多态分类 静态多态: 静态多态:编译器在编译...

2018-08-28 17:24:09

阅读数:46

评论数:0

C++设计一个类:只能在堆上创建对象、只能在栈上创建对象、只能创建一个对象

在C++中,创建类的对象有两种方法,一种是静态建立,A a; 另一种是动态建立,调用new 操作符。 一、只能在堆上创建对象 就是动态建立类的对象,使用new操作符来完成。 做法一:将该类的构造函数和析构函数权限设为protected,(可以让该类可以被继承),然后定义两个static 函...

2018-08-23 13:25:44

阅读数:64

评论数:0

剑指offer--找出字符串中第一个只出现一次的字符(题面已经更新)C++

题目描述: 找出字符串中第一个只出现一次的字符 输入描述: 输入一个非空字符串 输出描述: 输出第一个只出现一次的字符,如果不存在输出-1 示例1 输入 asdfasdfo 输出 ö 代码实现如下: #include<iostream>...

2018-08-23 08:17:39

阅读数:195

评论数:0

C++类的六个默认成员函数

先来定义一个类 class A { }; 经过编译器处理之后,类A不在为空,它会自动的生成六个默认的成员函数,即使这六个成员函数什么也不做。(这些成员函数当我们没有定义时,编译器会显示的调用)处理之后相当于: class A { public: A();//构造函数 ...

2018-08-22 19:30:11

阅读数:58

评论数:0

C++三大特性--封装

封装的概念:class+访问限定符 类的作用域:与函数重载结合 类的实例化:类–>实例化–>对象 对象模型:三个问题 this指针:特性 编译器如何来识别一个类 我们都知道C++有三大特性:封装、继承、多态,之前我总结过继承的...

2018-08-22 13:13:57

阅读数:108

评论数:0

LeetCode--Recover Binary Search Tree(C++)

题目描述: Two elements of a binary search tree (BST) are swapped by mistake. Recover the tree without changing its structure. Note: A solution using...

2018-08-19 20:55:09

阅读数:47

评论数:0

LeetCode--Validate Binary Search Tree(验证二叉搜索树)C++

题目描述:Given a binary tree, determine if it is a valid binary search tree (BST). Assume a BST is defined as follows: The left subtree of a node conta...

2018-08-19 19:36:23

阅读数:47

评论数:0

C++中的命名空间&&输入输出

一、命名空间 1.引入 在C++中,变量、函数和类都是大量存在的,这些变量、函数和类的名称将都存在于全局命名空间中,会导致很多冲突, 使用命名空间的目的是对标识符的名称进行本地化,以避免命名冲突或名字污染,Namespace关键字的出现就是针对这种问题的。 2.定义 (1)命名空间的定...

2018-08-19 17:30:55

阅读数:75

评论数:0

C++中指针和引用的区别&&传值、传址、传引用的区别,哪一种高效?

一、概念 指针:指针是一个变量,只不过这个变量存储的是一个地址,指向内存的一个存储单元。 引用:引用跟原来的变量实质上是同一个东西,只不过是原变量的一个别名而已。 举个例子: int a=10; //指针,定义了一个整型变量a和指针变量p,该指针变量指向a的存储单元,即p的值是a存储...

2018-08-19 16:23:46

阅读数:60

评论数:0

C语言和C++的区别与联系(详细)

面向过程和面向对象语言的区别 文件区别:关键字、后缀、返回值、参数列表 重载 C/C++函数调用约定与函数名称修饰规则 在学习了C语言和C++之后,这两者之间的区别我们需要仔细的捋一捋! 一、面向过程语言和面向对象语言 我们都知道C语言是面向过程语言,而C++是面向对象语言,说C和...

2018-08-19 10:47:32

阅读数:345

评论数:0

LeetCode--same tree(C++)

题目描述:Given two binary trees, write a function to check if they are equal or not. Two binary trees are considered equal if they are structurally iden...

2018-08-18 11:10:49

阅读数:42

评论数:0

LeetCode--construct binary tree from inorder and postorder-traversal(根据中序和后序遍历重建二叉树)C++

题目描述:Given inorder and postorder traversal of a tree, construct the binary tree. Note: You may assume that duplicates do not exist in the tree. 思路...

2018-08-18 11:00:19

阅读数:48

评论数:0

LeetCode--Minimum Depth of Binary Tree(C++)

题目描述: Given a binary tree, find its minimum depth. The minimum depth is the number of nodes along the shortest path from the root node down to the ...

2018-08-16 21:19:19

阅读数:34

评论数:0

LeetCode-- Binary Tree Postorder Traversal(C++)

Given a binary tree, return the Postorder traversal of its nodes’ values. For example: Given binary tree {1,#,2,3}, 1 \ 2 / 3 return [3...

2018-08-16 17:54:04

阅读数:48

评论数:0

数组和指针的区别与联系(详细)

指针和数组的区别: 1.概念: 2.存储方式、初始化(指针数组、数组指针)、存储内容(求sizeof) 3.赋值 6.传参(函数指针、函数指针数组、函数指针数组的指针、野指针) 一、概念 数组:数组是用于储存多个相同类型数据的集合。 指针:指针相当于一个变量,但是它和不同变量不一样,...

2018-08-16 14:45:43

阅读数:738

评论数:0

LeetCode--Binary Tree Preorder Traversal(C++)

题目描述: Given a binary tree, return the preorder traversal of its nodes’ values. For example: Given binary tree {1,#,2,3}, 1 \ 2 / ...

2018-08-14 21:58:32

阅读数:96

评论数:0

C语言模拟实现strlen、strcpy、strcat、strstr、strcmp、memcpy、memmove

一、strlen函数 1.函数介绍 strlen所作的仅仅是一个计数器的工作,它从内存的某个位置(可以是字符串开头,中间某个位置,甚至是某个不确定的内存区域)开始扫描,直到碰到第一个字符串结束符’\0’为止,然后返回计数器值(长度不包含’\0’)。 之前我在博客中写过关于数组运算中st...

2018-08-14 20:34:18

阅读数:44

评论数:0

浅谈:C/C++中的关键字--static

关键字static在C/C++中应用广泛,其主要有三个作用: (1)修饰变量 (2)修饰函数 (3)修饰数据成员/成员函数 其中前两个是面向过程语言中static的应用,即C语言,后一种是面向对象语言中static的应用,即C++。下面我们一起来学习学习吧! 一、修饰变量 变量可以...

2018-08-13 17:27:59

阅读数:47

评论数:0

C/C++程序内存的分配

一、一个C/C++编译的程序占用内存分为以下几个部分: 栈区(stack):由编译器自动分配与释放,存放为运行时函数分配的局部变量、函数参数、返回数据、返回地址等。其操作类似于数据结构中的栈。 堆区(heap):一般由程序员自动分配,如果程序员没有释放,程序结束时可能有OS回收。其分配类似于链...

2018-08-13 12:43:57

阅读数:65

评论数:0

平衡二叉树:输入一颗二叉树,判断该二叉树是否是平衡二叉树?(C++)

题目描述:输入一颗二叉树,判断该二叉树是否是平衡二叉树? 思路分析:平衡二叉树是指它的左右子树深度相差小于等于1。因此我们需要先求出该二叉树树左右子树的深度,然后看他们的差是否小于等于1 代码实现: class Solution { public: bool IsBalance...

2018-08-11 11:02:41

阅读数:55

评论数:0

提示
确定要删除当前文章?
取消 删除
关闭
关闭