展开

关键词

Git

写了一篇文章《一篇文章了解Github和Git》还觉得不错,继续写了《为了Github默默付出,我想了解你》,那么继续写 Git 知识。 输 git reset --hard HEAD^ 退回之前的提交版本,这个使用对开始的小白很重要也很好用哦! 说明:本的所有操作都在master分支上,且仅用于个人代码仓库管理,操作的实用性有待研究。 已推送(撤销远仓库的修改) git reset --hard HEAD^ git push -f ## 此时本地仓库和远仓库是一样的 ## 1.第一步先恢复本地仓库 ## 2.第二步再强制同步本地仓库到远仓库 你删除文件,解决一切烦恼。 我来删除文件咯咯咯,输命令 rm text 就可以看到神奇效果,你文件被删除了哦,git rm text 就好,已经删除了版本库中的文件了。哈哈,开心。

4620

适合具备 C 语言C++ (一)

引言 C 语言通常被认为是一种面向过的语言,因为其本身的特性更容易编写面向过的代码,当然也不排除使用 C 语言编写面向过的代码,比如 Linux 的源代码以及现在很火的国产物联网操作系统 RT-Thread 相比于 C 语言来说,C++ 更能够实现面向对象的序设计,其具有的特性也要比 C 语言要多的多。下面假设有这样一个需求。 现要描述两个人的信息,姓名,职业,年龄,并输出。 C++ 的引 那除此之外,还有更好的书写方式么,这个时候就要引 C++ 的特性了,上述代码中在执行函数时都传了参数,那要如何做才能将上述中的参数也省略去呢,且看如下的代码: #include <stdio.h + 的一个简单的引。 小结 OK,上述就是关于 C++ 的一个简单的引的过以及其涉及到的一部分有别于C语言的语法,本将持续连载,欢迎各位朋友关注~ 本小节所涉及的代码可以通过百度云链接的方式获取:链接:https:/

19320
  • 广告
    关闭

    90+款云产品免费体验

    提供包括云服务器,云数据库在内的90+款云计算产品。打造一站式的云产品试用服务,助力开发者和企业零门槛上云。

  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    适合具备 C 语言C++ (八)

    前言 在前一则中,我们阐述了多态的相关概念,其中就包括实现多态所必须的虚函数,以及使用多态这个性质时一些限制的内容,本节将着重讲解 C++中的类型转换问题,其中就包括:dynamic_cast、 C语言的类型转换 隐式类型转换 我们在使用C语言进行编的时候,时常会涉及到类型转换的问题,我们首先就隐式的类型转换进行阐述,话不多说,我们来看一段代码: #include <stdio.h> int 刚刚的两个动态类型转换均是由Human转换为 Englishman和chinese,属于是下行转换,也就是类对象转换为派生类对象,那么对于将派生类对象转换为类对象,也就是上行转换,又是如何实现的呢? 进行上行转换(把子类的指针或引用转换成类表示)是安全的; 进行下行转换(把类指针或引用转换成子类指针或引用)时,由于没有动态类型检查,所以是不安全的。 提取码:ricg 如果您觉得我的文章对您有所帮助,欢迎关注我的个人公众号:wenzi嵌式软件,获取最及时的更新 [公众号名片.jpg]

    8620

    适合具备 C 语言C++ (七)

    前言 在前面的中,阐述了继承的相关内容,其中就包括继承之后数据成员的访问控制以及多重继承,虚拟继承等内容,本节的内容即将阐述另外一个面向对象的特性:多态,多态是面向对象编三大特性之一。 test_eating(h); test_eating(e); test_eating(c); return 0; } 按照常规思路,在调用 test_eating()函数的时候,我们传的实参不同 ,那么它就会调用不同实参所对应的成员函数,我们看代码的运行结果: [image-20210220103645630] 可见代码的运行结果并不是如我们所想的一样,那这是为什么呢,这就要提到前面一则中所讲的派生类的空间分布 虚函数 要实现不同的实参调用不同的方法,我们也可以在test_eating()函数里进行判断,然后进行不同方法的调用,当然这是比较笨的方法了,最好的实现方式就是引虚函数,到底什么是虚函数呢,我们直接看代码 简而言之,也就是说一个类里有虚函数,那么这个类的实例化对象中必然存在指针,指针指向虚函数表,通过指针指向的虚函数表调用虚函数,下面是这个过的一个示意图: [image-20210220111846577

    10300

    适合具备 C 语言C++ (五)

    前言 在上述中,我们已经完成了 C++相对于 C语言来说独特的语法部分,在接下来的中,我们将叙述 C++中面向对象的语法特性。 封装 下图就是封装所具备的相关特性: [image-20210209204824118] 那么上图所示的抽象出数据成员以及成员函数具体的含义是什么呢,正如前面所述,在前面的里,我们选用一个 Person 在上述代码的上,我们增加如下所示的代码: /* 注意是在上述代码的上 */ class Student : public Person { }; int main(int argc 那在序中要如何实现这么一个功能呢?这里就要引 protected了。 在序里面也是同样的道理,我们在上述代码的上进行更改,Father类不变,改变 Son类。

    10400

    适合具备 C 语言C++ (三)

    前言 在上一则中,着重地阐述了构造函数以及析构函数地相关概念,这也是C++中非常重要地两个概念之一。 在今天地中,笔者将继续叙述 C++相对于 C语言来说不同的点,将详细叙述命名空间,静态成员,友元函数以及运算符重载这几个知识点。 静态成员 在上述代码的上,我们在主函数定义了如何几个变量,代码如下所示: #include <stdio.h> int main(int argc, char **argv) { Person 用到了两次 getX()和 getY(),这样就显得代码看起来十分的臃肿,所以也就有了如下的更改方式,我们可以将 Point add(Point &p1, Point &p2)函数设置成友元,那么在这样的上 小结 上述便是本次分享的内容,其中提到了运算符重载这一知识点还包含很多的应用,本次只是简单地用一个例子进行了介绍,下期将详细介绍运算符重载地其他内容,本次的分享到这里就结束咯~

    20370

    适合具备 C 语言C++ (四)

    前言 在上一则中,我们讲述了重载运算符中前 ++和后++的重载函数的实现,阐述了在 C++中可以将运算符进行重载的方法,这种方法大大地便利了序员编写代码,在接下来地叙述中,我们将着重讲述运算发重载时地一些更为细致地内容 紧接着,我们知道我们在使用 C++进行编码的时候,本不会再采用 C语言中的语法 printf这个语句,随之替代的是 cout这个语句,我们也知道我们使用 cout进行输出的时候,往往采用的是下面这样的输出方式 << "work =" << work << endl; } 总结一下也就是说:const对象只能够调用const成员函数,而const表示的是此函数没有对当前对象进行修改 小结 上述就是本期<em>教</em><em>程</em>分享的内容 ,到本期<em>教</em><em>程</em>截至,<em>C</em>++相对于 <em>C</em>语言不同的一些语法特性就到此结束了。 下期<em>教</em><em>程</em>将介绍 <em>C</em>++如何实现面向对象的方法。本期<em>教</em><em>程</em>所涉及到的代码可以通过百度云链接的方式获取到。

    8520

    适合具备 C 语言C++ (六)

    前言 再上一则中,着重讲述了派生类继承于父类之后的一些访问控制,在本次中,将介绍如下几个点:派生类扩展父类功能,派生类的空间分布,以及多重继承的相关概念。 它引用的是 s里面继承于 Person里的那部分,为了更清楚地说明这个问题,我们编写如下所示地一个函数: void test_func(Person &p) { p.printInfo(); } 于上述代码地上 class Sofabed : public Sofa, public Bed { }; 既然是从两个类中继承而来,自然也就满足在之前的里所述的访问控制的原则,并为继承所得到的派生类也满足类所具备的一些特性 再论构造函数的调用顺序 在前面的中,已经多次提及了构造函数的执行顺序,接下来也有必要就此问题继续谈一下当存在多重继承时,以及存在虚拟继承时,这个时候构造函数的调用顺序又是怎么样的? 同样的,我们采用打印消息的方式来了解这个执行过,为了更好地说明这个问题,我们引如下几个类:Furniture类,Vertification3c类,Sofa类、Bed类、SofaBed类、LeftRightCom

    7620

    适合具备 C 语言C++ (二)

    前言 在上一则中,通过与 C 语言相比较引出了 C++ 的相关特性,其中就包括函数重载,引用,this 指针,以及在脱离 IDE 编写 C++ 序时,所要用到的 Makefile的相关语法。 具体的来看如下所示的代码,在刚才那段代码的上,我们添加一些打印信息,从而推断我们析构函数调用的位置: #include <iostream> #include <string.h> #include 自定义拷贝构造函数 我们根据在上述代码的上,修改得到我们自定义的拷贝构造函数如下: #include <iostream> #include <string.h> #include <unistd.h 对象的构造顺序 在上述代码的上,比如说我们存在如下几个实例化对象。 小结 上述便是关于 C++比较核心的两个概念,构造函数以及析构函数两大特性,除了讲述了两大特性的本概念之外,也叙述了为什么要适用析构函数,以及析构函数调用的位置,同时也叙述了拷贝构造函数的相关内容。

    12710

    适合具备 C 语言C++ (十)

    前言 在上一则中,叙述了抽象类以及动态链接库的相关内容,本节来叙述一下抽象类界面的相关内容,以及本节即将引一个新的概念,模板。 抽象类界面 何为抽象类界面呢? 要说清楚这个概念,需要回顾上一则中所述的类编和应用编两个概念,为了实现应用编和类编,引了动态链接库的概念,要达到的效果就是当更改类的代码的时候,而不更改应用序的代码的时候,只需要重新生成动态链接库 模板 在C++中的模板定义中,模板有两类,一个是函数模板,一个是类模板,在本节的中,主要是讲述函数模板的相关内容。 函数模板的引 为什么要引函数模板呢,我们来看一下如下所示的代码: int& max(int& a, int& b) { return (a < b)? int和double,传这两个参数是函数模板是无法进行推导的,无法进行隐式转换。

    9510

    适合具备 C 语言C++ (九)

    前言 在上一则中,叙述了关于C++类型转换的相关内容,在本节中,将叙述 C++的另一个内容,也就是抽象,这也是 C++相对于 C语言来说独特的一点,下面我们就来着重叙述这一点。 多文件编 在前面的中,有一则说到了多文件编,在 C++中也就是将类的声明放到头文件中,将类的实现放在.cpp文件中,为了更好地阐述这种方法,我们用实例来进行讲解,首先,来看一下,所涉及到地所有文件有哪些 ()函数内,根据传的参数不同执行不同的eating函数,说到这里,实际上是跟前面一则中所将的抽象类和虚函数概念所结合起来的,因此,这里也是采用相同的思路,将 Human类设置为抽象类,然后其他类由 ,本会分为两类,一个是应用编,一个是类编,那么这两者的区别如下所示: 应用编:使用类 类编:提供类编,比如说 Englishman,Chinese 于此,我们将之前的序更改为这种形式,分为应用编和类编 小结 上述便是本期的所有内容,所涉及的代码可以通过百度云链接的方式获取。

    11910

    适合具备 C 语言C++ (三)

    前言 在上一则中,着重地阐述了构造函数以及析构函数的相关概念,这也是C++中非常重要的两个概念之一。 在今天的中,笔者将继续叙述 C++相对于 C语言来说不同的点,将详细叙述命名空间,静态成员,友元函数以及运算符重载这几个知识点。 静态成员 在上述代码的上,我们在主函数定义了如何几个变量,代码如下所示: #include <stdio.h> int main(int argc, char **argv) { Person 用到了两次 getX()和 getY(),这样就显得代码看起来十分的臃肿,所以也就有了如下的更改方式,我们可以将 Point add(Point &p1, Point &p2)函数设置成友元,那么在这样的上 小结 上述便是本次分享的内容,其中提到了运算符重载这一知识点还包含很多的应用,本次只是简单地用一个例子进行了介绍,下期将详细介绍运算符重载地其他内容,本次的分享到这里就结束咯~ 本节所涉及的代码可以通过百度云链接的方式获取到

    9920

    Vue01()

    一、Vue介绍 1.什么是Vue.js Vue.js 是目前最火的一个前端框架,React是最流行的一个前端框架(React除了开发网站,还可以开发手机App, Vue语法也是可以用于进行手机App 前端页面中使用MVVM的思想,主要是为了让我们开发MVVM提供了数据的双向绑定,双向绑定是由VM提供的 二、Vue本使用   此次代码工具是Visual Studio Code,小伙伴可自行下载安装 导Vue的包 --> <script src="./lib/vue-2.4.0.js"></script> </head> <body> <! 创建一个Vue的实例 // 当我们导包之后,在浏览器的内存中,就多了一个 Vue 构造函数 // 注意:我们 new 出来的这个 vm 对象,就是我们 MVVM中的 VM调度者 = new Vue({ el: '#app', // 表示,当前我们 new 的这个 Vue 实例,要控制页面上的哪个区域 // 这里的 data 就是 MVVM中的 M,专用来保存

    42110

    Android(四)

    学习Android要掌握Android序结构,和通信技术,和如何搭建Android开发环境,那么我之前有发过《Android Studio系列---下载与安装》《Android Studio系列 ,如果作为序员千万可别这么说,否则会被说的哦,android可以看到的是我们初次进IT界时,它那Logo的标志,一个类似机器人一样的标志,一个绿色的机器人。 ),函数库层(C写的),Android Runtime(Android运行时),Linux Kernel(驱动层)。 虚拟中过:.java-.class-.dex-.odex,于寄存器架构,那么你可以对比一下JVM,JVM的过:.java-.class-.jar,于栈,寄存器存储快>栈。 接下来重点在布局和控件的使用,那么我之前写了《Android三》就是介绍布局的。

    5910

    Flink 实践 1-零用户实现简单 Flink 任务

    Oceanus 简介 流计算 Oceanus 是大数据产品生态体系的实时化分析利器,是于 Apache Flink 构建的具备一站开发、无缝连接、亚秒延时、低廉成本、安全稳定等特点的企业级实时大数据分析平台 进 Oceanus 控制台,点击左侧【集群管理】,点击左上方【创建集群】,具体可参考 Oceanus 官方文档 创建独享集群。 二、创建 Oceanus 作业 1.

    590102

    适合具备 C 语言C++ (十二)

    引言 在前面的中,叙述了模板函数以及模板类的相关概念,在本节中,笔者将着重叙述 C++中的异常机制,所谓异常,是序在执行期间产生的问题,异常提供一种转移序控制权的方式。 下面是函数运行的结果: [image-20210226162409999] 通过上述可以看到运行序时输的命令是. 上述中,我们讲述了异常处理机制时在扔出各个类型的异常时的处理方法,在整个C++中,贯穿始终的一直是类这个概念,那么对于C++来说,抛出异常的时候可以抛出类异常么,答案是可以的。 如果在上述类的上,又多出来一个子类的异常,又该如何编写呢,下面是子类继承自父类的代码: class MySubException : public MyException { public: void MySubException(); } 我们看到,在上述中,我们只声明了抛出异常的类型只有int和double,那么也就是说不能够再去抛出其他类型的异常了,即便下面写的代码中有抛出其他类型,其他代码在上述的上不变

    8800

    适合具备 C 语言C++ (十三)

    前言 无论是在C还是C++中,指针都是在使用的时候需要非常谨慎的一个点,而在C++中,我们引一个智能指针的概念,以此来规避在使用指针时可能出现的问题。 智能指针的引 我们以之前的一个序为例子,也就是Person类,如下是Person类的代码: class Person { public: Person() { cout 最终导致序崩溃。 sp(sp &other) { cout << "sp(sp &other)" << endl; p = other.p } }; 在增加了拷贝构造函数的上 endl; } return 0; } 编译,执行,下面是代码执行的结果: [image-20210228210842670] 对照着代码,我们可以看到Person对象被指向的次数,而且在更改之后的上运行

    10400

    适合具备 C 语言C++ (十一)

    前言 在上一则中,着重叙述了抽象类界面以及函数模板的相关内容,在本节中,笔者将详细阐述函数模板重载的概念,将从具体的实例中阐述函数模板重载要注意的内容。 函数模板重载 函数重载是在最开始就阐述过的概念,那么函数模板重载又该如何理解呢,我们以上一节中比大小的函数模板为背景,具体阐述函数模板重载的概念,代码如下所示: template<typename 这个原则是什么,下面列出了一个详细地分析步骤来分析这个调用过。 *b : *a; } 我们在于上述两个模板函数的上,来编写我们的主函数,主函数代码如下所示: int main(int argc, char **argv) { int ia = 1; int return 0; } 代码运行结果如下所示: [image-20210224224823979] 类重载 我们知道函数是可以重载的,那么其实类也是可以进行重载的,类重载也可以称之为是定做,在上述代码的

    5320

    Java--安卓(七)

    接口的本语法 接口的本语法(一) 使用interface定义 接口当中的方法都是抽象方法; 接口当中的方法都是public权限 接口中全是抽象函数,不能生成对象     catch(Exception e){       System.out.println(e);     }    }  } } 33字符流:读写文件时,以字符为 字节输流:Reader <--FileReader  int read(char[] c,int off,int len) 字节输出流:Writer <--FileWriter void } } class Carpenter implemments Worker{  public void doSomeWork(){   System.out.println("修窗 {      System.out.println(arr[i][j]);     }    }  } } 41类集框架 什么是类集框架 集合的种类 类集框架的结构

    6720

    扫码关注云+社区

    领取腾讯云代金券