C++
望长安于日下
静以修身
展开
-
C++设计模式——单例模式
今天主要是学习了单例模式的三种实现,包括懒汉式、双重检查锁懒汉式和饿汉式。首先,我们应该要理解单例模式的概念,单例模式简单的来说就是一个类只允许有一个对象,为此,我们可以知道必须要控制类的构造行为,故将构造函数私有化、同时将该类的对象定义为该类的静态数据成员(因为构造函数被私有化了)。首先是懒汉式,懒汉式理解起来最为直接,直接上代码#include "commonHeader.h"class lanhan {public: static lanhan * getInstance()原创 2021-11-04 10:10:05 · 148 阅读 · 0 评论 -
C++内部类、名字空间
1、内部类1、一个类写在内部和写在外部没有实质的区别,如果说区别就是了作用域解析运算符:: 2、如果这个内部类是在外部类的private下面的话,则从外部是无法调用的,被隐藏了3、调用内部类格式:Outter::Inner pp4、内部类和外部类互相没有特权(1)他们不是朋友关系、(2)他们不是父子关系,(3)他们没有任何的特殊关系,所以外部类无法自由访问内部类,内部类无法自由访问内部...原创 2019-12-03 22:31:13 · 473 阅读 · 0 评论 -
C++继承、virtul继承、构造与析构、类的大小、多重继承、纯虚函数
1、继承:当B继承A时,则自动的将父类中的所有public成员继承继承格式class Child :public Father#include <stdio.h>#include <string.h>#include <iostream>using namespace std;class Father{public: int age;...原创 2019-12-02 23:03:47 · 263 阅读 · 0 评论 -
C++链表
#include <iostream>using namespace std;int main(){ struct Students//定义结构体 { int id; char names[100]; char scores[100]; Students* next;//使用类指针时要在类的构建时声明类的指针,即保存一个指针而已 }; Students ...原创 2019-12-02 09:11:51 · 240 阅读 · 0 评论 -
C++ 指向类的指针
一个指向 C++ 类的指针与指向结构的指针类似,访问指向类的指针的成员,需要使用成员访问运算符 ->,就像访问指向结构的指针一样。与所有的指针一样,您必须在使用指针之前,对指针进行初始化。下面的实例有助于更好地理解指向类的指针的概念:#include <iostream> using namespace std;class Box{ public: ...原创 2019-12-01 14:55:10 · 217 阅读 · 0 评论 -
C++结构体
大纲://1、定义一个结构体变量//2、定义一个结构体数组//3、定义一个指针,结构体指针通过箭头访问成员变量//4、结构体类型作为函数参数test1 test2//5、结构体类型作为返回值//6、匿名结构体//7、结构体支持赋值操作=#include <iostream>#include <string.h>#include <stdio.h...原创 2019-12-01 10:27:55 · 176 阅读 · 0 评论 -
C++面向对象——类/this指针
this指针1、每个成员函数(包括构造函数和析构函数)都有一个this指针2、this指针指向调用对象,即可以通过this关键字访问当前类中的成员。3、访问的成员包变量和函数注意:this指针只是存在于类中,是类指针的简写形式举个栗子#include <iostream>using namespace std;class Object{ public:...原创 2019-11-23 17:44:40 · 300 阅读 · 0 评论 -
C++面向对象——类/抽象/构造函数/析构函数
main.cpp#include <iostream>#include "Students.h"using namespace std;int main(){ //构造函数的重载规则跟普通函数的重载规则相同,重载的时候不关注的他的返回值,只关注返回类型 Students stu1;//在栈内存中直接实例化 Students stu2("马化腾","真...原创 2019-11-22 20:46:14 · 652 阅读 · 0 评论 -
C++函数——重载/模板
overloadoverride多态原创 2019-11-22 17:41:40 · 237 阅读 · 0 评论 -
C++函数——引用reference
reference介绍原创 2019-11-21 18:04:28 · 824 阅读 · 0 评论 -
C++之vector向量
容器简介1、动态数组,可以在运行阶段设置长度2、具有数组的快速索引方式3、可以插入和删除元素容器的定义及初始化vector<double> vec1;//创建一个容器vector<string> vecc2(5);//创建一个长度为5的容器vector<int> vec3(20,998);//创建长度为20的容器,并且元素全部都是998...原创 2019-11-21 09:19:06 · 220 阅读 · 0 评论 -
C++之构造函数/析构函数——斗地主
知识点比较多,包括构造函数,析构函数相关的知识,考察的比较全面。除了类本身的定义,包括类的创建,构造函数的声明(4个不同的构造函数),函数的定义(showinfo),析构函数(一个就够了),可以看到构造函数的重载,不同参数个数之间,构造函数的命名方式,域空间解析运算符的使用,析构函数的运行方式(堆和栈),内存被回收释放的顺序,.h用来放函数声明。.cpp放函数的定义等等知识点//main.c...原创 2019-11-20 21:15:44 · 153 阅读 · 0 评论 -
C++函数——内联函数、宏定义
251页内联函数、宏定义、引用、函数重载、//class1demo.hpp#ifndef CLASS1DEMO_HPP_INCLUDED#define CLASS1DEMO_HPP_INCLUDED#endif // CLASS1DEMO_HPP_INCLUDED#include <iostream>using namespace std;//声明函数void su...原创 2019-11-19 09:51:00 · 170 阅读 · 0 评论 -
C++之const——禁止指针修改原数据
特别强调:指针一定慎用(*ptr_num)++,会改变指针所指向数的数值,使用指针最好配合const禁止数值被修改!!!//举个例子/#include <iostream>#include "class1demo.hpp"using namespace std;//声明函数void sum2(int*, int*);void sum3(int&, int&am...原创 2019-11-19 09:36:02 · 2782 阅读 · 0 评论 -
C++之函数体——函数声明指针(指针指向函数)
函数也有地址,函数的地址时存储机器语言代码的内存开始地址好处:可以在不同的时间使用不同的函数函数的指针声明注意:1、下面这个语句声明了一个指针ptrSum,指向一个函数2、double (*ptrSum)(double double)不是指针函数,而是声明了一个函数ptrSum,返回double *类型//函数原型;double sum(double, double);//...原创 2019-11-17 17:59:17 · 822 阅读 · 0 评论 -
C++之函数体——通过指针引用
使用数组作为函数的参数,在C++之函数体那里已经讲了通过普通的方法将数组作为参数,引入到函数中。这里介绍使用指针的方法将数组作为参数一维数组(1)//1、头文件constdemo.h#ifndef CONSTDEMO_H_INCLUDED#define CONSTDEMO_H_INCLUDED#include <iostream>using namespace st...原创 2019-11-17 17:33:07 · 276 阅读 · 0 评论 -
C++报错的原因排查
敲黑板!!!!!目前来说,所有的错误都是因为少写了分号;的原因!!!一定要随时准备写上分号!!!1、error: expected initializer before "void"//因为函数声明没有加分号!!2、error: expected `;' before "return"//因为调用函数没有加分号!!...原创 2019-11-17 15:34:27 · 2417 阅读 · 0 评论 -
C++函数按值传递机制
给函数传递参数时,参数值不会直接传递给函数,而是先制作参数的副本,存储在栈上,再使这个副本可用于函数,而不是使用初始值。#include <iostream>#include <cmath>using namespace std;//void change(int);//函数定义在使用时的前面就不用声明void change(int num){ nu...原创 2019-11-17 09:54:32 · 190 阅读 · 0 评论 -
C++之函数体
内置函数:STL:标准模板库Boost C++ 可移植提供源代码c++库函数三要素:1、返回值类型2、函数名3、参数列表//不需要返回值时(即没有返回类型)可以用void(不确定类型)#include <iostream>#include <cmath>using namespace std;//1、声明函数原型//写好了函数,将函数原...原创 2019-11-16 20:57:08 · 3347 阅读 · 0 评论 -
C++小技巧知识点汇总
#include <iostream>#include <array>#include <iomanip>using namespace std;int main(){case 1:{//如果想在里面定义变量,就需要加入大括号,表示是一个函数体 array<int,5> array_num = {1,2,3,4,5}; break;...原创 2019-11-16 16:22:07 · 202 阅读 · 0 评论 -
C++通过生日判断星座
//通过输入生日判断星座#include <iostream>#include <iomanip>using namespace std;int main(){ //通过生日判断星座 /** 出生月 */ int bir_month; /** 出生日 */ int bir_day; /** 星座二维数组 */ ...原创 2019-11-16 15:27:37 · 1838 阅读 · 0 评论 -
C++指针知识点汇总——二维数组
//指针知识点汇总1、指针的自增和自减 int ptr_num++ //每次移动4字节 double ptr_num1 ++ //每次移动8字节2、二维数组指针 //方法1::用stock堆的方法随机内存二维数组 int arrays[3][6]; int (*ptr_nums)[6] = arrays; //方法2:用...原创 2019-11-16 11:12:03 · 330 阅读 · 0 评论 -
C++指针取址符号&
//取址符号&读音:and1、单个常量取址时,必须要加取址符号&2、数组取址时,不需要加&符号,默认取数组第一个元素地址#include <iostream>#include <cstdlib>using namespace std;int main(){ //关于取址符号and:& int num = 6...原创 2019-11-16 09:44:26 · 2078 阅读 · 0 评论 -
C++每日程序练习5——通过两种方法反转一个数组
//反转一个数组#include <iostream>#include <cstdlib>using namespace std;int main(){ //反转一个数组 int nums[] = {21,23,34,45}; int temp; for(int i = 0;i < 4- 2 *i; i++){ ...原创 2019-11-15 17:17:22 · 218 阅读 · 0 评论 -
C++每日程序练习4——求数组中的最小值
//题目:求数组中的最小值 打擂台u can u up no can no bibi#include <iostream>using namespace std;int main(){//题目:求数组中的平均值 int nums[]={1, 2, 3, 4, 5, 6}; int numlen = sizeof(nums) / sizeof(int...原创 2019-11-14 17:37:34 · 644 阅读 · 0 评论 -
C++每日程序练习3
//题目:求数组中的最小值 打擂台u can u up no can no bibi#include <iostream>using namespace std;int main(){//题目:求数组中的最小值 打擂台u can u up no can no bibi int Nums[] = {121, 34, 22, 45, 56, 67, 99, 43, 88...原创 2019-11-14 17:35:07 · 142 阅读 · 0 评论 -
C++每日程序练习2
//数组的重要两点//1、数组长度固定不变//2、数组中的所有元素必须属于同一种数据类型#include <iostream>using namespace std;int main(){ //数组的重要两点 //1、数组长度固定不变 //2、数组中的所有元素必须属于同一种数据类型 //题目:求数组中的最大值 打擂台u can u up...原创 2019-11-14 17:32:24 · 178 阅读 · 0 评论 -
C++每日程序练习1
二维数组的使用,打印学生的成绩单#include <iostream>using namespace std;int main(){ //二维数组的使用,打印学生的成绩单 string stu_names[]={"刘备","关羽","张飞"}; string course_names[]={"语文","数学","英语"}; int row =...原创 2019-11-14 17:25:05 · 167 阅读 · 0 评论