C++编程知识
系统地学习C++基础和进阶知识,整理成笔记
Jeff1993!
这个作者很懒,什么都没留下…
展开
-
3.10、RTTI、dynamic_cast、typeid、虚函数表
这里写目录标题一级目录一级目录#include<iostream>#include<cstdlib>#include<string>using namespace std;class Human{public: int age; string name;public: //构造函数 Human(); Human(int age, string name); //析构函数 ~Human() { cout << "Hum原创 2020-08-11 13:43:57 · 156 阅读 · 0 评论 -
3.9、友元函数、友元类、友元成员函数
友元函数、友元类、友元成员函数普通函数做类友元函数友元类三级目录普通函数做类友元函数#include<iostream>#include<cstdlib>#include<string>#include<vector>using namespace std;class Human{private: int age; string name;public: //构造函数 Human(); Human(int age, stri原创 2020-08-11 13:42:16 · 165 阅读 · 0 评论 -
3.8、基类指针、虚纯虚函数、多态性、虚析构
基类指针、虚纯虚函数、多态性、虚析构虚函数与多态虚函数析构函数一般写成虚函数虚函数与多态#include<iostream>#include<cstdlib>#include<string>#include<vector>using namespace std;class Human{public: int age; string name;public: //构造函数 Human(); Human(int age, stri原创 2020-08-11 09:29:46 · 181 阅读 · 1 评论 -
3.6重载运算符、拷贝赋值运算符、析构函数
重载运算符、拷贝赋值运算符、析构函数重载运算符拷贝赋值运算符析构函数(a)函数重载(b)构造函数的成员初始化(a)析构函数的成员销毁(a)new对象和delete对象重载运算符==,<=,>=,++,(),<<,>>,=,+,-比较operator ==有些时候生成类的时候,我们没有重载=运算符,系统会自动生成一个拷贝赋值运算符析构函数(a)函数重载(b)构造函数的成员初始化(a)析构函数的成员销毁(a)new对象和delete对象...原创 2020-08-06 10:34:12 · 122 阅读 · 0 评论 -
3.5拷贝构造函数
拷贝构造函数拷贝构造函数从一个函数返回一个对象拷贝构造函数类对象的拷贝是每个成员变量逐次进行拷贝()默认情况下会有赋值拷贝函数和拷贝构造函数(赋值构造函数 ),在一定的时机被系统自动调用 Time::Time(const Time& tmptime,int a){ //建议拷贝构造函数带const }带有指针成员变量时注意浅拷贝和深拷贝从一个函数返回一个对象会发生拷贝构造函数调用...原创 2020-08-01 14:23:27 · 95 阅读 · 0 评论 -
3.4类内初始化、默认构造函数、=default
类内初始化、默认构造函数、=default类相关非成员函数类内初始化const成员变量的初始化默认构造函数=default,=delete(显示禁用某个函数);类相关非成员函数普通函数,但放在类文件中,类内初始化C++11才支持,给成员变量赋值成一个初始值(定义时)const成员变量的初始化初始化列表(定义时必须赋值)(不能在构造函数中赋值)默认构造函数编译器自动分配一个无参构造函数 (没有定义情况下,不管是无参还是有参)=default,=delete(显示禁用某个函数);编译器为这种原创 2020-08-01 11:54:27 · 151 阅读 · 0 评论 -
3.3inline、const、mutable、this、static在类中的使用
inline、const、mutable、this、static在类中的使用在类定义中实现成员函数inline(声明就要写全)成员函数末尾加constmutable返回自身对象的引用static成员在类定义中实现成员函数inline(声明就要写全)成员函数末尾加constmutable返回自身对象的引用static成员...原创 2020-08-01 00:00:35 · 104 阅读 · 0 评论 -
3.2构造函数介绍
构造函数介绍构造函数形式多个构造函数函数默认参数隐式转换和explicit构造函数初始化列表构造函数形式(1) 没有返回值(2)不可以手动调用构造函数(3)一般声明为public(4)多个参数时,声明对象时也要带上这些参数(5)可以有多个构造函数(6)系统自动提供一个无参构造函数多个构造函数对象拷贝(深拷贝和浅拷贝,中间有临时对象的拷贝)函数默认参数,前面的可以不拥有默认值,默认值只能放在声明中,且只能在后面使用并且连续,默认参数会根据是否缺省进行替换隐式转换和explicit编译原创 2020-07-31 23:33:14 · 116 阅读 · 0 评论 -
3-1、成员函数,对象拷贝,私有成员
成员函数,对象拷贝,私有成员代码分析类设计组织结构.h文件分析.cpp文件分析代码分析主main函数#include <iostream>#include "Time.h"//成员函数,对象拷贝,私有成员//1、综述//2、类基础//3、成员函数//4、对象的拷贝//5、私有成员using namespace std;struct student{ string name; int age;};//class Time//{//public:原创 2020-07-31 19:08:02 · 198 阅读 · 0 评论 -
迭代器精彩演绎、失效分析及弥补、实战
迭代器精彩演绎、失效分析及弥补、实战代码解析代码解析#include <iostream>#include <vector>/*迭代器精彩演绎、失效分析及弥补、实战(1)迭代器简介(2)容器的迭代器类型(3)迭代器begin()/end()操作,反向迭代器rbegin()/rend()操作(4)迭代器运算符(5)const iterator迭代器 (5.1)cbegin()和cend()操作(6)迭代器失效 (6.1)灾难程序演示1 (原创 2020-07-30 12:35:18 · 130 阅读 · 0 评论 -
类型转换、static_cast dynamic_cast reinterpret_cast const_cast等
类型转换、static_cast dynamic_cast reinterpret_cast const_cast等代码分析代码分析#include <iostream>////类型转换、static_cast dynamic_cast reinterpret_cast const_cast等//(1)隐式类型转换//(2)显示类型转换 //(2.1)static_cast //(2.2)dynamic_cast //(2.3)const_cast //原创 2020-07-29 20:02:18 · 89 阅读 · 0 评论 -
vector类型介绍
vector类型介绍源码分析源码分析#include <iostream>#include <vector>using namespace std;//vector类型介绍//1、vector类型简介//2、定义和初始化vector对象//3、vector对象上的操作// (3.1)for循环的进一步理解int main(){ //1、vector类型简介:标准库:集合或者是动态数组。可以把若干对象放里边 //vector能把其他对象放进来,所原创 2020-07-29 16:24:53 · 350 阅读 · 0 评论 -
string类型介绍
string类型介绍string类型介绍string类型介绍#include <iostream>#include <string.h>using namespace std;/*string类型介绍(1)前言(2)string类型简介(3)定义和初始化string对象(4)string对象上的操作*/int main(){ //(一)、前言:int,float,char,C++标准库,string,vector。 //string:可变长原创 2020-07-28 19:02:16 · 158 阅读 · 0 评论 -
语言特性:过程式、对象式程序设计
语言特性、工程构成、可移植性语言特性:过程式、对象式程序设计面向过程式的程序设计编写一个最简单的C++程序工程文件构成可移植性问题语言特性:过程式、对象式程序设计面向过程式的程序设计过程式的程序设计:c语言程序设计从上往下,逐步求精,按顺序一步一步把问题解决。基于对象的程序设计 和 面向对象的程序设计 的区别//结构:学生,名字,性别,成绩//C++中,我们把结构叫成“类”;//在C++中,当我们要用到类的时候,而是称定义一个对象:结构变量 == 对象;//我们在类中除了可以定义成员变量,原创 2020-07-18 20:17:43 · 228 阅读 · 0 评论