C++
文章平均质量分 61
灵活的C++
LoveHoneyYou
知识改变命运,科技改变生活!
展开
-
C++进阶---虚表
虚表原创 2022-08-04 17:10:03 · 211 阅读 · 0 评论 -
C++进阶第一篇
1.输入与输出一门语言最不重要的就是输入与输出,再次只是粗劣的提一嘴,后续运算符重载会有详解#include <iostream>using namespace std;int main(){ int a = 0; char ch = '\0'; cin >> a >> ch; //输入 cout << "a= " << a << '\t' << " ch=" << ch &l原创 2022-01-20 11:51:46 · 479 阅读 · 0 评论 -
C++进阶第二篇
面向对象1.类是一组相关的属性(变量)和行为(方法)的集合,是一个抽象概念设计的产物对象是该类事物的具体表现形式,具体存在实体成员变量是对象的属性(可以是数组,指针,变量等),属性的值确定对象的状态成员函数是对象的方法,确定对象的行为2.状态和行为是对象的主要属性1)对象的状态又称为对象的静态属性,主要指对象内所包含的各种信息,也就是变量。每个对象个体都有自己专有的内部变量,这些变量的值标明了对象所处的状态2)对象的方法(行为)一方面把对象的内部变量包裹,封装,保护起来,使得原创 2022-01-21 19:19:43 · 640 阅读 · 0 评论 -
C++进阶第三篇
1.const 在两种编译方式下的不同处理1)在C++的编译方式下//C++编译方式#include <iostream>using namespace std;int main(){ const int a = 10; //const修饰a,a为常量 int b = 0; int *p = (int*)&a; *p = 100; b = a; //在编译时,将10给b cout << "a = " << a <<原创 2022-01-22 11:51:43 · 650 阅读 · 0 评论 -
C++进阶第四篇
1.常引用可以引用变量 也可以引用常量#include <iostream>int main(){ int a = 10; const int &b = a;//底层实现 //const int* const b = &a; const int c = 10; //底层实现 //int tmp = 10; //const int &c = tmp; //const int* const c = 10; system("pause");原创 2022-01-27 12:28:37 · 744 阅读 · 0 评论 -
C++模块化设计---日历系统
设计思路:数据层:#pragma once#include <ctime>#include <iostream>using namespace std;class ViewDate;//数据层 --- 进行所有的数据处理class ModelDate{private: ViewDate* view; //数据层连接显示层private: int year; int month; int mday; //今天是几号...原创 2022-05-19 12:43:57 · 478 阅读 · 0 评论 -
C++进阶第五篇
1.普通强转与引用强转#include <iostream>using namespace std;int main(){ float ft = 12.25; int a = (int)ft; //二进制重新构建 int b = (int&)ft; //不构建直接解析 cout << hex << a << " " << hex << " " << b << endl; sy原创 2022-01-29 11:56:01 · 478 阅读 · 0 评论 -
C++进阶第六篇
1. 后置++重载存在的问题 Int & operator++(int) { static Int old = *this; old = *this; ++*this; return old; }当以引用接受返回值时,对引用的操作始终改变的是旧值,并不回对象自身的value值改变注:1)尽量不要加static 2)不要以引用作为返回值类型2.取址符的重载 Int* operator & () { return this;...原创 2022-02-05 12:50:19 · 442 阅读 · 0 评论 -
C++进阶第七篇
1.对象的内存分布1)#include <iostream>using namespace std;#define SEQ_INIT_SIZE 10class Seqlist{ int data[SEQ_INIT_SIZE]; int maxsize; int cursize;public: Seqlist() :maxsize(SEQ_INIT_SIZE), cursize(0) { } ~Seqlist() { }};int main(){原创 2022-02-07 19:40:11 · 419 阅读 · 0 评论 -
C++进阶第八篇
1. 无移动构造和移动赋值#include <iostream>#include <string>using namespace std;class String{private: char* str; String(char*p, int) { str = p; }public: String(const char *p = NULL) :str(NULL) { if (p != NULL) { str = new char[strl原创 2022-02-09 13:00:46 · 329 阅读 · 0 评论 -
C++进阶第九篇
1. T 和 a 完全一致#include <iostream>#include <typeinfo>using namespace std;template<typename T>void fun(T a){ T x, y; cout << typeid(T).name() << " "; cout << typeid(a).name() << endl;}int main()..原创 2022-03-14 12:28:15 · 953 阅读 · 0 评论 -
C++进阶第十篇
1.普通方法中可以调用常方法但是常方法中不能调用普通方法2. String 完整版#include <iostream>#include <stdio.h>#include <stdlib.h>#include <assert.h>using namespace std;class String{protected: struct StrNode { int ref; //引用指向 int len;原创 2022-03-16 12:44:44 · 770 阅读 · 0 评论 -
String2.0
String原创 2022-07-08 08:31:59 · 65 阅读 · 0 评论 -
C++进阶第十一篇
对象间关系原创 2022-07-23 16:28:41 · 260 阅读 · 0 评论 -
C++继承第一篇---小试牛刀
继承1原创 2022-07-26 19:04:53 · 192 阅读 · 0 评论 -
C++进阶---菱形继承
菱形继承原创 2022-07-31 13:02:32 · 216 阅读 · 0 评论 -
C++进阶第十二篇
1.早期绑定:编译时的多态:函数的重载,运算符的重载在编译时,就确定了调用关系晚期绑定:以虚函数为基础的运行时的多态性在程序的运行过程中,确定调用关系2.struct 和 classstruct A {};class B : A // 默认私有继承{};class A {};struct B : A //默认公有继承{};3.继承在内存中的表示4..........原创 2022-03-21 00:16:13 · 1207 阅读 · 0 评论 -
C++进阶第十三篇
1.C++的两种多态性编译时的多态:通过函数的重载和运算符的重载来实现的运行时的多态:运行时的多态是指在程序执行之前,无法根据函数名和形参来确定该调用哪一个函数,必须在程序执行的过程中,根据执行的具体情况来动态确定。它是通过类继承关系public和虚函数来实现的。目的是建立一种通过的程序。通用性是程序追求的主要目标之一公有继承代表"是一个"的意思,即狗是一个动物,猫是一个动物,所以就可以把狗给动物,猫给动物,反之不可必须使用引用或者指针调用虚函数2.虚函数虚函数必须是类的原创 2022-03-22 23:57:24 · 585 阅读 · 0 评论 -
C++进阶第十四篇
1. 动态联编联编是指计算机程序自身彼此关联的过程,是把一个标识符和一个存储地址联系在一起的过程,也就是把一个消息和一个对象的操作相结合的过程如果使用指针或引用指明派生类对象并使用该指针调用虚函数,则程序运行时动态地选择该派生类的虚函数,称为动态联编2.静态联编如果使用对象名和点成员选择运算符 "." 调用成员方法,在编译时确定调用关系3.虚函数的重写#include <iostream>using namespace std;class Object{..原创 2022-03-28 23:31:05 · 1175 阅读 · 0 评论 -
C++进阶---STL中list的仿写
list原创 2022-08-17 17:23:10 · 399 阅读 · 0 评论 -
C++进阶第十五篇
1. 简单工厂模式原创 2022-04-05 09:22:43 · 1137 阅读 · 2 评论 -
C++进阶第十六篇
1. 删除器#include <iostream>using namespace std;template <class _Ty>class MyDeletor{public: MyDeletor() = default; //默认构造函数 相当于 MyDeletor() {} void operator () (_Ty* ptr) const { if (ptr != nullptr) { delete ptr; } }};t原创 2022-04-14 19:10:02 · 47 阅读 · 0 评论 -
C++初阶
1.endl与\n的区别2.namespace(1)命名空间的名字不能重复(2)要使用命名空间里的成员需要加上命名空间的名字和作用域解析符 如:stu::Printf()(3)使用using namespace stu; 不能加在命名空间的建立之前(4)在不同的命名空间中可以使用相同的变量名,函数名等(5)using std::cout; 只能使用cout这一种库函数;(6)命名空间后不用加分号(7)命名空间不能在函数里建立(8)可以在命名空间中定义函数,但.原创 2021-11-02 00:07:45 · 211 阅读 · 2 评论