<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[m0_72677702的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/m0_72677702</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; m0_72677702]]></copyright><item><title><![CDATA[C/CPP基础练习题多维数组，矩阵转置，杨辉三角详解]]></title><link>https://blog.youkuaiyun.com/m0_72677702/article/details/126632998</link><guid>https://blog.youkuaiyun.com/m0_72677702/article/details/126632998</guid><author>m0_72677702</author><pubDate>Wed, 31 Aug 2022 21:52:41 +0800</pubDate><description><![CDATA[1. 矩阵转置输入一个数字构成的矩形, 将矩形的值进行转置后打印​输入:第一行 正整数n(1]]></description><category></category></item><item><title><![CDATA[C/C++模板类模板与函数模板区别，以及用法详解]]></title><link>https://blog.youkuaiyun.com/m0_72677702/article/details/126611914</link><guid>https://blog.youkuaiyun.com/m0_72677702/article/details/126611914</guid><author>m0_72677702</author><pubDate>Tue, 30 Aug 2022 20:26:53 +0800</pubDate><description><![CDATA[第二种是保证其在一个类别中的万能性，比如你想对任意数据类型的数组作交换，但只想写一种函数，就可以用，但相对的会费脑子，在日常打代码一个复制粘贴改改就能写，但需要想的很远，等同于你象棋开局走一步就能达到到将死对面的所有情况你都要想，而且维护方面也是个问题，因此更常用的是第一种，以上还仅是在函数模板的基础上得到的结论，更别说在类模板的函数传入了。cout ...]]></description><category></category></item><item><title><![CDATA[C/C++普通函数与函数模板的区别，调用规则，模板局限性]]></title><link>https://blog.youkuaiyun.com/m0_72677702/article/details/126590071</link><guid>https://blog.youkuaiyun.com/m0_72677702/article/details/126590071</guid><author>m0_72677702</author><pubDate>Mon, 29 Aug 2022 18:16:12 +0800</pubDate><description><![CDATA[以上面案例为例，编译器默认调用了普通函数，发现还需要把char转成int，又发现如果调用模板则只需确定类型即可，于是调用模板函数，最优选择。// 注意 如果告诉编译器  普通函数是有的，但只是声明没有实现，或者不在当前文件内实现，就会报错找不到。//具体化，显示具体化的原型和定意思以template开头，并通过名称来指出类型。//使用函数模板时，如果用自动类型推导，不会发生自动类型转换,即隐式类型转换。//1、如果函数模板和普通函数都可以实现，优先调用普通函数。//调用重载的函数模板。...]]></description><category></category></item><item><title><![CDATA[C++泛型编程，模板（一）函数模板]]></title><link>https://blog.youkuaiyun.com/m0_72677702/article/details/126571898</link><guid>https://blog.youkuaiyun.com/m0_72677702/article/details/126571898</guid><author>m0_72677702</author><pubDate>Sun, 28 Aug 2022 17:21:08 +0800</pubDate><description><![CDATA[template//声明一个模板，告诉编译器后面代码紧跟着的代码T不要报错。//错误，模板不能独立使用，即使没有用到T，也必须确定出T的类型。//利用显示指定类型的方式，给T一个类型，才可以使用该模板。// 错误，推导不出一致的T类型。// 正确，可以推导出一致的T。// 1、自动类型推导，必须推导出一致的数据类型T,才可以使用。1、自动类型推导，必须推导出一致的数据类型T,才可以使用。// 2、模板必须要确定出T的数据类型，才可以使用。...]]></description><category></category></item><item><title><![CDATA[C/CPP基础练习题（二）简单循环（2 + 22 + 222…；斐波那契数列）]]></title><link>https://blog.youkuaiyun.com/m0_72677702/article/details/126560598</link><guid>https://blog.youkuaiyun.com/m0_72677702/article/details/126560598</guid><author>m0_72677702</author><pubDate>Sat, 27 Aug 2022 17:44:39 +0800</pubDate><description><![CDATA[1. 求平均年龄01星球有学长若干名, 给出每个学长的年龄, 求01星球学长的平均年龄, 保留小数点后两位输入:第一行: 整数n(1]]></description><category></category></item><item><title><![CDATA[C/CPP基础练习题（一）运算符，判断]]></title><link>https://blog.youkuaiyun.com/m0_72677702/article/details/126539977</link><guid>https://blog.youkuaiyun.com/m0_72677702/article/details/126539977</guid><author>m0_72677702</author><pubDate>Fri, 26 Aug 2022 11:24:17 +0800</pubDate><description><![CDATA[1. 设计一个程序, 输入三位数a, 分别输出个,十,百位.(0]]></description><category></category></item><item><title><![CDATA[C/C++size(),sizeof(),length(),strlen() 对比分析详解]]></title><link>https://blog.youkuaiyun.com/m0_72677702/article/details/126531421</link><guid>https://blog.youkuaiyun.com/m0_72677702/article/details/126531421</guid><author>m0_72677702</author><pubDate>Thu, 25 Aug 2022 19:57:06 +0800</pubDate><description><![CDATA[strcmp()函数首先将s1字符串的第一个字符值减去s2第一个字符，若差值为零则继续比较下去，接着比较第二个字符然后第三个字符等等，若差值不为零，则停止比较并返回两个ASCII码差值。"abc" 结尾默认包含 'a' 'b' 'c' '\0' ，而'a' 'b' 'c'，区别是无'\0'。这里面只能比较字符串，即可用于比较两个字符串常量，或比较数组和字符串常量，不能比较数字等其他形式的参数。无论两个字符串是什么样，strcmp函数最多比较到其中一个字符串遇到结束符'/0'为止，得出结果。...]]></description><category></category></item><item><title><![CDATA[C/CPP中int和string的互相转换详解与多解例题分析]]></title><link>https://blog.youkuaiyun.com/m0_72677702/article/details/126511628</link><guid>https://blog.youkuaiyun.com/m0_72677702/article/details/126511628</guid><author>m0_72677702</author><pubDate>Thu, 25 Aug 2022 19:47:51 +0800</pubDate><description><![CDATA[C标准库atoi, atof, atol, atoll(C++11标准) 函数，以及sprintf、sscanf函数，用sstream类，实现C++中int和string的互相转换]]></description><category></category></item><item><title><![CDATA[C++文件读写操作分析文本文件与二进制文件]]></title><link>https://blog.youkuaiyun.com/m0_72677702/article/details/126492020</link><guid>https://blog.youkuaiyun.com/m0_72677702/article/details/126492020</guid><author>m0_72677702</author><pubDate>Tue, 23 Aug 2022 20:08:02 +0800</pubDate><description><![CDATA[ios::app 与 ios::ate 的区别主要在多线程写文件时有区别，ios::app：第一个线程(进程)往里面写了个d,第二个线程(进程)写了个e的话，结果是abcde。cout ]]></description><category></category></item><item><title><![CDATA[C++多态案例（三）-电脑组装]]></title><link>https://blog.youkuaiyun.com/m0_72677702/article/details/126475290</link><guid>https://blog.youkuaiyun.com/m0_72677702/article/details/126475290</guid><author>m0_72677702</author><pubDate>Mon, 22 Aug 2022 22:56:07 +0800</pubDate><description><![CDATA[cout ]]></description><category></category></item><item><title><![CDATA[C++多态之析构和纯虚析构分析与示例]]></title><link>https://blog.youkuaiyun.com/m0_72677702/article/details/126456961</link><guid>https://blog.youkuaiyun.com/m0_72677702/article/details/126456961</guid><author>m0_72677702</author><pubDate>Sun, 21 Aug 2022 22:54:13 +0800</pubDate><description><![CDATA[语法强制纯虚析构函数必须有函数实现,因为有时父类也有一些数据开辟在堆区，既要使用纯虚函数，又要释放父类在堆区中的数据，就需要使用类内纯虚函数声明，类外写实现的写法。由于本案例在一些子类中有些数据开辟到堆区了，所以必须要走子类中的析构代码，如果使用了多态就走不到了，所以需要加上虚析构或者纯虚析构。cout ]]></description><category></category></item><item><title><![CDATA[C++多态纯虚函数和抽象类与多态案例（二）-制作饮品]]></title><link>https://blog.youkuaiyun.com/m0_72677702/article/details/126445554</link><guid>https://blog.youkuaiyun.com/m0_72677702/article/details/126445554</guid><author>m0_72677702</author><pubDate>Sat, 20 Aug 2022 22:48:55 +0800</pubDate><description><![CDATA[virtual void func() //子类必须重写父类中的纯虚函数，否则子类无法实例化对象。在多态中，通常父类中虚函数的实现是毫无意义的，主要都是调用子类重写的内容。" ]]></description><category></category></item><item><title><![CDATA[C++多态案例（一）-计算器类]]></title><link>https://blog.youkuaiyun.com/m0_72677702/article/details/126433635</link><guid>https://blog.youkuaiyun.com/m0_72677702/article/details/126433635</guid><author>m0_72677702</author><pubDate>Fri, 19 Aug 2022 23:58:26 +0800</pubDate><description><![CDATA[/多态优点：代码组织结构清晰（哪里出问题直接定位），可读性强，利于前期和后期的扩展（想添加什么功能直接添加相关类）以及维护（哪里出问题直接定位，一个功能出问题不影响其他功能）多态优点：代码组织结构清晰（哪里出问题直接定位），可读性强，利于前期和后期的扩展（想添加什么功能直接添加相关类）以及维护（哪里出问题直接定位，一个功能出问题不影响其他功能）分别利用普通写法和多态技术，设计实现两个操作数进行运算的计算器类。//如果要提供新的运算，需要修改源码。delete abc;多态案例一-计算器类。]]></description><category></category></item><item><title><![CDATA[C++多态的基本概念与原理刨析]]></title><link>https://blog.youkuaiyun.com/m0_72677702/article/details/126413962</link><guid>https://blog.youkuaiyun.com/m0_72677702/article/details/126413962</guid><author>m0_72677702</author><pubDate>Thu, 18 Aug 2022 21:11:22 +0800</pubDate><description><![CDATA[加上关键字后运行发现这个类占4个字节（PS：不管什么指针都占4个字节，可以考虑指针），多了一个vfptr（virtual function pointer虚函数（表）指针），指向vftable（虚函数表）在Animal中的speak()函数为加上关键字virtual时是一个非静态成员函数，不属于类的对象上，该类类似于一个空类，占一个字节，DoSpeak(cat);cout ...]]></description><category></category></item><item><title><![CDATA[C++继承中的多继承语法与菱形继承]]></title><link>https://blog.youkuaiyun.com/m0_72677702/article/details/126395770</link><guid>https://blog.youkuaiyun.com/m0_72677702/article/details/126395770</guid><author>m0_72677702</author><pubDate>Wed, 17 Aug 2022 22:39:22 +0800</pubDate><description><![CDATA[草泥马继承自动物的数据继承了两份，其实我们应该清楚，这份数据我们只需要一份就可以。羊继承了动物的数据，驼同样继承了动物的数据，当草泥马使用数据时，就会产生二义性。菱形继承带来的主要问题是子类继承两份相同的数据，导致资源浪费以及毫无意义。//语法：class 子类：继承方式 父类1 ，继承方式 父类2。//继承前加virtual关键字后，变为虚继承。使用了虚继承后对比未使用虚继承解决菱形继承。这种继承被称为菱形继承，或者钻石继承。//多继承容易产生成员同名的情况。利用虚继承可以解决菱形继承问题。...]]></description><category></category></item><item><title><![CDATA[C++继承中的同名成员处理方式与同名静态成员处理方式]]></title><link>https://blog.youkuaiyun.com/m0_72677702/article/details/126375567</link><guid>https://blog.youkuaiyun.com/m0_72677702/article/details/126375567</guid><author>m0_72677702</author><pubDate>Tue, 16 Aug 2022 22:22:57 +0800</pubDate><description><![CDATA[当子类与父类拥有同名的成员函数，子类会隐藏父类中所有的同名成员函数，加作用域可以访问到父类中同名函数。总结：同名静态成员处理方式和非静态处理方式一样，只不过有两种访问的方式（通过对象 和 通过类名）问题：当子类与父类出现同名的成员，如何通过子类对象，访问到子类或父类中同名的数据呢？问题：继承中同名的静态成员在子类对象上如何进行访问？静态成员和非静态成员出现同名，处理方式一致。子类对象加作用域可以访问到父类同名成员。子类对象可以直接访问到子类中同名成员。访问子类同名成员 直接访问即可。继承同名成员处理方式。.]]></description><category></category></item><item><title><![CDATA[C++继承的基本语法与三种继承方式]]></title><link>https://blog.youkuaiyun.com/m0_72677702/article/details/126335632</link><guid>https://blog.youkuaiyun.com/m0_72677702/article/details/126335632</guid><author>m0_72677702</author><pubDate>Sun, 14 Aug 2022 20:16:08 +0800</pubDate><description><![CDATA[/Son3是私有继承，所以继承Son3的属性在GrandSon3中都无法访问到Son3中的private成员。//可访问 protected权限，父类中的公共权限到了子类中依然是公共权限。//可访问 public权限，父类中的公共权限到了子类中依然是公共权限。//可访问 protected权限。//可访问 protected权限。m_A = 100;//可访问 private权限。//可访问 private权限。//其他类只能访问到公共权限。//m_C = 10;...]]></description><category></category></item><item><title><![CDATA[C++运算符重载（五）之关系运算符重载]]></title><link>https://blog.youkuaiyun.com/m0_72677702/article/details/126315498</link><guid>https://blog.youkuaiyun.com/m0_72677702/article/details/126315498</guid><author>m0_72677702</author><pubDate>Sat, 13 Aug 2022 10:04:01 +0800</pubDate><description><![CDATA[关系运算符重载


作用：重载关系运算符，可以让两个自定义类型对象进行对比操作示例：
class Person
{
public:
    Person(string name, int age)
    {
        this-&gt;m_Name = name;
        this-&gt;m_Age = age;
    };
​
    bool operator==(Person &amp; p)
    {
        if (this-&gt;m_Name == p.m_Nam]]></description><category></category></item><item><title><![CDATA[C++运算符重载（四）之赋值运算符重载]]></title><link>https://blog.youkuaiyun.com/m0_72677702/article/details/126297515</link><guid>https://blog.youkuaiyun.com/m0_72677702/article/details/126297515</guid><author>m0_72677702</author><pubDate>Fri, 12 Aug 2022 09:32:24 +0800</pubDate><description><![CDATA[不能通过连接其他符号来创建新的操作符：比如operator@ 重载操作符必须有一个类类型或者枚举类型的操作数 用于内置类型的操作符，其含义不能改变，例如：内置的整型 + ，不 能改变其含义 作为类成员的重载函数时，其形参看起来比操作数数目少1成员函数的操作符有一个默认的形参this，限定为第一个形参 .*、::、sizeof 、?三、日期赋值= 参数类型 返回值 检测是否自己给自己赋值 返回 * this 一个类如果没有显式定义赋值运算符重载，编译器也会生成一个，完成对象按字节序的值拷贝。...]]></description><category></category></item><item><title><![CDATA[C++运算符重载（三）之递增运算符重载]]></title><link>https://blog.youkuaiyun.com/m0_72677702/article/details/126277892</link><guid>https://blog.youkuaiyun.com/m0_72677702/article/details/126277892</guid><author>m0_72677702</author><pubDate>Thu, 11 Aug 2022 08:29:00 +0800</pubDate><description><![CDATA[如果返回值是一个值，实际上返回的是一个值的副本，因为返回是一个拷贝构造过程，原来的释放了，但是拷贝了一份新的，不受成员函数释放的影响。后置++操作正常是先引用后递增，所以这里用了一个temp来记录递增之前的值，而不是直接返回原来的数的引用，但这里确实不可以进行链式操作了，因为返回回来的对象不是原来的对象，返回的对象是temp。//记录当前本身的值，然后让本身的值加1，但是返回的是以前的值，达到先返回后++；//如果返回值是引用，那么返回值就是本身，如果返回值是一个值，实际上返回的是一个值的副本，拷贝构造。.]]></description><category></category></item></channel></rss>