C++
丶丶路遥
这个作者很懒,什么都没留下…
展开
-
C++快速入门--3
只编译一次头文件 一个.h文件只能被编译一次,如果你在多个文件中包含,那就会被编译多次,从而程序出错,那么在C中,你可以这样来控制只包含一次#ifndef _PROGRAME#define _PORGRAME//这里写定义的内容typedef struct Node{ int data; struct Node * next;}Node;#endif...原创 2018-03-06 22:20:34 · 573 阅读 · 0 评论 -
C++语言算法之求任意两个相同字符的最大距离
提问 我们有一个这样的字符串abcaffdffqwwwwrcs,最大长度的多少呢?我们发现两个c直接的距离最大,这里最大长度应该是第2个c的位置-第一个c的位置。算法思路 下面来讲一下算法是实现思路: 先来看看,我们如何求第一个字母a之间的距离,我们先确定a的位置是第一个,我们用一个变量保存a的位置,然后再通过下标移动到底2个a的位置,只需要将第二个位置减去第一个位置即可,这就得到了原创 2018-03-22 15:04:52 · 1071 阅读 · 0 评论 -
C++快速入门--7
const修饰成员函数 当const修饰成员函数的时候,代表这个函数不能修改这个对象的成员属性。class T{private: int a;public: void test() const{ this->a = 200; //报错 }}; 发现以上是报错的,事实上,这个const修饰的是this指针,所以,当你修改当...原创 2018-03-11 23:09:17 · 309 阅读 · 0 评论 -
C++快速入门--1
本课程适合拥有C语言基础,和面向对象基础的同学C++helloword#include "iostream"using namespace std;int main(){ cout<<"helloword&a原创 2019-01-12 16:56:50 · 12438 阅读 · 0 评论 -
C++快速入门--12--抽象类和接口模拟
初探抽象类 什么是抽象类?含有纯虚函数的类为抽象类,什么是纯虚函数?即virtual void fun() = 0;这样的函数即为纯虚函数。class Figer{public: virtual int getArea() = 0;};class Circle:public Firger{public: Circle(int a,int b){ ...原创 2018-03-16 12:48:08 · 289 阅读 · 0 评论 -
C++快速入门--6
new和delete关键字 在C++中提供了new和delete关键字,new用来开辟内存,delete用来释放内存,并且new会自动调用构造函数,delete关键字会自动调用析构函数,与C语言中中malloc和free中不同的是,这个两个函数不会调用构造函数和析构函数。 当不用调用构造函数与析构函数的时候,它们的功能是一样的 //C语言语法 int *p =...原创 2018-03-10 00:17:18 · 462 阅读 · 0 评论 -
C++快速入门--11--多态原理
多态实现原理图解 多态如此的神奇,我们站在C语言角度来探究多态实现原理。我们先前探究过this指针的实现原理,事实,多态也是有一个指针,当我们定义了一系列虚函数之后,编译器会产生一个虚函数表,然后再通过这个指针指向这个虚函数表,而我们知道,多态需要有继承才能实现,所以这时候,编译器会产生两个表,一个是父类的需函数表,一个是子类的虚函数表,当我们使用某个虚函数的时候,编译器根本不用关心你传过...原创 2018-03-15 23:48:24 · 320 阅读 · 0 评论 -
C++快速入门--5
浅拷贝 在上一节的copy构造函数中,就涉及到了C++中的浅拷贝问题,当我们没有自定义拷贝构造函数的时候,C++编译器会自动帮我们生成一个拷贝构造函数,这个拷贝构造函数只能拷贝对象的值或者引用,而不能拷贝引用本身,也就是说如果对象中存在一个动态分配的内存变量的时候,它只会拷贝指针本身,而不会拷贝指针指向的内存。浅拷贝会引发某些问题,如下代码。#include "iostream"...原创 2018-03-09 15:16:37 · 473 阅读 · 0 评论 -
C++快速入门--2
指针的引用 你可能会遇到需要在一个函数中初始化一块内存的场景,这时候,你必须使用二级指针,原因是如果你使用的是一级指针,当你申请的内存返回的是一个指针类型的变量的时候,这时候,当函数体结束的时候,这个一级指针将会被释放,所以这里你需要使用二级指针void init(Node ** node){ Node * q = (Node *)malloc(sizeof(Node))...原创 2018-03-06 12:04:36 · 746 阅读 · 3 评论 -
C++快速入门--10--多态
初探多态 当子类继承父类,并且子类重写了父类的函数的时候,当我们使用父类对象指向子类引用的时候,我们希望调用的是子类的函数,而不是父类的函数,如果当父类对象指向自身的时候,我们希望调用的是父类自身的函数,而不是子类的函数,这就是C++中的多态,这就意味着,一个父类可以有多种指向方式,我们完全可以让多个类继承于同一个类,然后重写其中的某个方法,当我们传什么对象时,就默认调什么对象的方法,这样...原创 2018-03-15 18:18:12 · 200 阅读 · 0 评论 -
C++快速入门--9--继承
初探继承 如果我们希望某一个类能直接使用另一个类的属性和方法,那么这时候就可以用到继承,那么如果使用继承呢?class A{//...};class B : public A{//...}; 这样,我们就能在B中直接使用A中的属性和方法了,但是值得注意的是,如果A类中的成员变量是private定义的,在B类中还是使用不了三种继承类型 在C++中我们可以使用private继承原创 2018-03-15 10:55:02 · 274 阅读 · 0 评论 -
C++快速入门--4
构造函数与析构函数 C++中构造函数在函数初始化的时候自动调用,名字跟类名一样,析构函数在对象销毁的时候自动调用,先创建的对象后销毁,栈模式,并且析构函数无任何返回值,通过析构函数,常用来释放某些资源。构造函数可以被重载,而析构函数不能被重载,因为析构函数无返回值和无参数决定了它只能拥有一个class Test{public: Test(){ this-...原创 2018-03-08 03:50:50 · 408 阅读 · 0 评论 -
C++快速入门--8--构造一个字符串类
不使用原生的string类,如何写入自定义长度字符串 当我们读取一个字符串的时候,通常是定义一个大数组来存放这些内容,但是,有时候,我们不知道内容有多大的时候,这时候如何定义数组的大小呢?一种做法是,我们定义一个大数组,然后通过realloc来减小数组的大小,并能减小内存的消耗。还有一种做法是,边扩大数组,边存放内容,在扩大数组的时候,将数据转存到另外一个数组。//String类...原创 2018-03-13 14:48:35 · 852 阅读 · 0 评论