c++
Antony12
编程!
展开
-
c++的基本知识
- 什么是C++? c++是由c发展而来,与c兼容。用c语言编写的程序基本上可以不加修饰的用于c++。c++既可用于面向过程的结构化程序设计,又可以用于面向对象的程序设计,是一个功能强大的混合型的程序设计语言。 c++对c的“增强”,表现在两个方面: 1)在原来面向过程的机制基础上,对c语言的功能做了不少补充。 2)增加了面向对象机制。为什么C++支持重载?C语言不支持–重点原创 2018-03-19 21:32:55 · 152 阅读 · 0 评论 -
c++异常
先来个面试题:设计一个算法实现1+2+…+n不能使用+、-运算符 且时间复杂度为o(n)解决方案:#define _CRT_SECURE_NO_WARNINGS 0;#include<iostream>#include<stdlib.h>#include<stdio.h>#include<time.h>#include<win...原创 2018-05-27 22:42:37 · 382 阅读 · 0 评论 -
模板的分类编译
一、模板为什么不能分离编译?普通函数template.h:#pragma once#include<iostream>using namespace std;void Func();template.cpp:#include"template.h"void Func(){ cout << "普通函数" << endl;}...原创 2018-05-27 08:31:04 · 470 阅读 · 0 评论 -
模板类--Vector
首先铺垫一些扩展性知识:1、模板不支持分离编译,why?分离编译不会模板实例化2、怎样解决?1)显示实例化,最好指定模板类型(因为有的模板必须指定类型)。 2)最好的方式是把声明和定义放一个头文件里(类里面定义太大了)。扩容:template&amp;amp;lt;class T&amp;amp;gt;void Vector&amp;amp;lt;int&amp;amp;gt;:: Expand(size原创 2018-05-14 08:06:04 · 649 阅读 · 0 评论 -
探索c++多态对象模型
一、探索虚函数表 虚函数表是通过一块连续内存来存储虚函数的地址。这张表解决了继承、虚函数(重写)的问题。在有虚函数的对象实例中都存在一张虚函 数表,虚函数表就像一张地图,指明了实际应该调用的虚函数函数。测试代码:class Base{public : void func1() { cout<<"Base::func1" <&l...原创 2018-05-04 08:23:59 · 186 阅读 · 0 评论 -
c++单继承与多继承(包含虚函数与虚继承的对比)
先来个概念分析题:class Person{public: void Show() { cout<<"Person::"<<_name<<endl; }protected: int _id; string _name;};struct Student : public Person{pu...原创 2018-04-18 22:29:53 · 2441 阅读 · 0 评论 -
C++中的多态
先来几个常见的面试题: 1、如何实现不能被继承的类? 需要的知识点: 私有继承以后不可见,构造函数合成 解决方法: class AA{public: void func1() {} static AA* Getvariable1()//static 是为了没有对象也能调//无this指针就要加static { retu...原创 2018-04-22 14:47:03 · 196 阅读 · 0 评论 -
c++继承基本概念
一、顺序表和链表的对比 顺序表存储: 原理:顺序表存储是将数据元素放到一块连续的内存存储空间,存取效率高,速度快。但是不可以动态增加长度 优点:1、存取速度高效,通过下标来直接存储 2、便于释放 3、省空间 4、cpu高速缓存顺序表比链表更快 缺点:1.插入和删除比较慢, 比如:插入或者删除一个元素时,整个表需要遍历移动元素来重新排一次顺序 ...原创 2018-04-17 21:36:05 · 333 阅读 · 0 评论 -
c++中的深浅拷贝
**一、浅拷贝:**1)代码: 1、构造:String ::String(const char* str="") :_str(new char[strlen(str)+1]){ strcpy(_str, str);}2、拷贝构造String::String(const String&s) : _str(s._str){}...原创 2018-04-11 22:25:52 · 668 阅读 · 0 评论 -
c++中的动态内存管理
、1、内存: 说到内存管理,大多人都不了解什么是内存管理,下面我来简单介绍一下: 一般把内存理解为四部分:栈 、堆、静态区(数据段)、常量区(代码段) 存储内容: 栈:存放局部变量,栈上的内容只在函数作用域范围内有效,出了作用域会自动销毁,其存储特点是效率高但存储空间有限。堆:由使用者动态开辟出来的空间存在堆上,如malloc、new,其生命周期由free和delete来决定,其特点是...原创 2018-04-28 07:54:11 · 261 阅读 · 0 评论 -
深入理解c++成员函数
1、const成员函数: 在成员函数后面加const,const修饰this指针所指向的对象,也就是保证调用这个const成员函数的对象在函数内不会被改变 思考以下几种场景 1. const对象可以调用非const成员函数和const成员函数吗? x 2. 非const对象可以调用非const成员函数和const成员函数吗? 对 3、const成员函数内可以调用其它的co原创 2018-03-31 21:29:00 · 2929 阅读 · 0 评论 -
日期类的实现(c++版)
上篇博客简单的介绍了以下c++的几个默认成员函数,现在我们为了更好的理解这几个成员函数,实现一个简单的日期类。 日期类所用到的指知识点: 1、构造函数 2、拷贝构造函数 3、赋值运算符的重载 4、函数的复用 实现的功能: 1)、在当前基础下加一天,减一天后的日期 2)、在当前基础下加多天,减多天后的日期 3)、当前日期与要计算的日期相差多少...原创 2018-03-30 17:12:09 · 378 阅读 · 0 评论 -
引用和指针
引用的概念及用法 引用:就是给一个变量起个别名。 语法 : 定义的格式为: 类型 &引用变量名 = 已定义过的变量名; int a=10; int &b=a; 这里b就是a的别名 引用的特点: 1. 一个变量可取多个别名 2. 引用必须初始化 3. 引用只能在初始化的时...原创 2018-03-20 17:18:47 · 389 阅读 · 0 评论 -
STL模板
学习内容:1、泛型编程2、模板函数&amp;amp;amp;amp;amp;amp;amp;amp;类模板3、非类型模板参数&amp;amp;amp;amp;amp;amp;amp;amp;模板的模板参数4、模板的特化5、模板的分离编译一、泛型编程模板:模板是泛型编程的基础。所谓泛型编程就是编写与类型无关的逻辑代码,是一种复用方式。分类:模板函数和模板类。二、模板函数1)- 模板函数 假设现在要实现一个比较两个数是否相等的重载函原创 2018-05-23 16:29:13 · 1204 阅读 · 0 评论