
【C++进阶教程】
MISAYAONE
拒绝一切形式的代考,替考行为,务必诚信考试!!!本人所写题库均搜集于互联网。
展开
-
C++进阶教程——模板函数
目录模板函数为什么要有模板模板函数的使用三个小坑1:模板函数定义的类型参数必须要用2:模板函数内部逻辑的改动,需要重新进行编译3:注意函数的返回类型是不可以参数化的哦~~简单的排序算法泛型编程一直想写一点C++稍微进阶学习的内容,趁着这一小段空闲时间,写一点吧。模板函数为什么要有模板记住两句话就够了:1:类型参数化(本质!!!)2:将与类型无...原创 2019-04-04 13:00:48 · 508 阅读 · 0 评论 -
C++异常之基本语法
异常是一种程序控制机制,与函数机制独立且互补函数是一种上下衔接的以栈结构展开的程序控制系统,而异常则是一种控制结构,它依据于栈结构,可以同时设置多个异常类型作为捕获条件,从而以类型匹配在栈结构中跳跃回馈异常的设计目的栈机制是一种高度节律性的控制机制,面向对象编程却要求对象之间有方向、有目的的控制传动。从一开始,异常的目的就是为了改变程序的控制结构,以适应面向对象程序更好的更高效的...原创 2019-05-07 19:55:29 · 322 阅读 · 1 评论 -
C++异常之栈解旋(unwinding)
栈解旋:当发生异常时,从进入try块后,到异常被抛掷前,这期间在栈上的构造的所有对象都会被自动析构。析构的顺序与构造的顺序相反,这一过程被称为栈的解旋(unwinding) (注意栈解旋发生的时间段~)#include<iostream>using namespace std;class test {public: test(const int& a,co...原创 2019-05-07 19:52:46 · 1906 阅读 · 2 评论 -
C++异常小练习 异常对象与多态
#include<iostream>using namespace std;//自定义异常类class eSize{public: eSize(int size) { this->size = size; } virtual void printErr() { cout << "eSize Error" << endl; ...原创 2019-05-10 10:26:55 · 318 阅读 · 0 评论 -
C++ 异常类型及其生命周期
有一个悬而未决的问题,看了代码值得探讨一下~~针对最后问题的解答:不要认为析构函数调用后,就真的吃掉了你的内存,析构函数只不过告诉你这部分内存现在不再是某一个对象独占的了,你有权访问它,但其它人也有权修改它,在别人没修改之前,访问得到的值依然不变而已。如果捕获方式使用对象指针的类型:那么对于throw &test_class()这种异常的抛出方式,其生命周期不会延续到异常的处理...原创 2019-05-09 11:53:47 · 561 阅读 · 0 评论 -
类模板声明与实现小练习
// template_one.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include<iostream>using namespace std;//如果想要将类模板的声明与实现分别放在.h和.cpp文件中,那么在使用到类模板实现的文件,需要将该.cpp文件include进来//类的前置声明template<typ...原创 2019-05-01 14:10:28 · 372 阅读 · 0 评论 -
类名与括号
类对象初始化的时候加括号与不加括号有什么区别~网上看了一些博客,说的有点七零八落,最热门的那个帖子说的东西还都是错的。。。自己之前也没搞懂,实在是汗颜~#include<iostream>using namespace std;class A{public: A() { cout << "A()" << endl; } A(i...原创 2019-05-08 20:07:00 · 997 阅读 · 0 评论 -
C++异常之异常接口声明
一个小例子即可理解://异常的接口声明:目的是为了增强程序的可读性#include<iostream>using namespace std;//在VS2015环境下测试得知,虽然C++有这样的语法声明函数的异常抛出情况,但是不符合声明情况的编译结果只是一个warning://warning C4290: 忽略 C++ 异常规范,但指示函数不是 __declspec(n...原创 2019-05-08 10:41:54 · 2413 阅读 · 0 评论 -
类模板的总体实现练习
涉及到很多知识点:1:深拷贝与浅拷贝与野指针2:拷贝构造函数与赋值运算符3:左移运算符重载,取址运算符重载4:容器执行插入元素操作5:类模板的实现teacher.cpp#pragma once#include<iostream>using namespace std;enum title{ Professor, AsscioateProfes...原创 2019-05-02 20:40:40 · 322 阅读 · 0 评论 -
类模板与static关键字
//类模板内的static关键字#include<iostream>using namespace std;//类模板A中,定义了一个static关键字a,其类型固定为int,显示初始化为0template<typename T>class A{ T b;public: A(T c) { b = c; a++; } void show(...原创 2019-05-02 10:40:16 · 358 阅读 · 1 评论 -
为什么类模板的声明与定义要放在一起?
首先,C++标准中提到,一个编译单元[translation unit]是指一个.cpp文件以及它所include的所有.h文件,.h文件里的代码将会被扩展到包含它的.cpp文件里,然后编译器编译该.cpp文件为一个.obj文件,后者拥有PE[Portable Executable,即windows可执行文件]文件格式,并且本身包含的就已经是二进制码,但当编译器将一个工程里的所有.cpp文件以...原创 2019-04-27 10:24:48 · 899 阅读 · 1 评论 -
类模板与模板类概念区分
类模板的定义:允许用户为类定义个一种模式,使得类中的某些数据成员、默认成员函数的参数,某些成员函数的返回值,能够取任意类型(它是一个参数未确定的模板)template<typename T>class A{};模板类:就是类模板中的参数确定之后的产物,也就是类模板实例化后的产物。(它是一个参数已经确定好的类)A<int> A<cha...原创 2019-04-27 09:53:37 · 5438 阅读 · 0 评论 -
C++进阶教程之类模板
目录为什么要有模板注意的几点:类模板的派生(类模板派生普通类)类模板派生类模板敲敲代码什么要有模板记住两句话就够了:1:类型参数化2:将与类型无关的底层逻辑抽象出来对于类模板呢,依然是这两条含义:1:类型参数化2:将数据结构的表示与算法不受所包含元素的类型影响、数据结构与算法的分离(数据类型与算法的分离)比如链表可以存储int char d...原创 2019-04-09 11:14:42 · 419 阅读 · 0 评论 -
C++进阶教程之函数模板与函数重载——探索模板函数机制的本质
前面讲到了函数模板,那么函数模板可不可以与普通的函数重载一起存在呢?下面来试验一下:#include<iostream>using namespace std;//当模板函数遇上函数重载template<typename T>void function(T a, T b){ cout << "模板函数" << endl;}...原创 2019-04-09 11:05:00 · 427 阅读 · 0 评论 -
C++ 标准异常类和自定义异常类
show you the code//标准异常类#include<iostream>//头文件#include<stdExcept>using namespace std;/*标准异常类体系如下: 缩进层次表示继承关系exception #include <exception> runtime_error #include <s...原创 2019-05-11 14:01:37 · 5051 阅读 · 0 评论