自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(67)
  • 收藏
  • 关注

转载 上,下拉电阻的作用与计算

上拉电阻的目的:1、当TTL 电路驱动COMS 电路时,如果TTL 电路输出的高电平低于COMS 电路的最低高电平(一般为3.5V), 这时就需要在TTL 的输出端接上拉电阻,以提高输出高电平的值。2、OC 门电路必须加上拉电阻,以提高输出的搞电平值。3、为加大输出引脚的驱动能力,有的单片机管脚上也常使用上拉电阻。4、在COMS 芯片上,为了防止静电造成损坏,不用的管脚不能悬空,一般接上拉...

2019-05-03 15:19:47 3603

原创 运算符重载的正确用法

#include<iostream>using namespace std;class Complex{public: int a; int b; friend ostream& operator<<(ostream &out, Complex c3);public: Complex(int a=0,int b=0) { this...

2018-10-11 09:38:36 618

原创 模板类派生模板类

#include<iostream>using namespace std;template <typename T>class A{public: T a;public: A(T a = 0) { this->a = a; } void printfA() { cout << "a= "<<a<<..

2018-09-25 09:34:16 243

原创 函数模板的机制探究

 函数模板的机制        编译器并不是把函数模板处理成能够处理任意类的函数        编译器从函数模板通过具体类型产生不同的函数     编译器会对函数模板进行两次编译        在声明的地方对模板代码本身进行编译;在调用的地方对参数替换后的代码进行编译      第一次编译:是对函数的语法,句法,词法进行编译;      第二次编译是对参数替换后的代码进行编...

2018-09-18 14:41:18 268

原创 函数指针做函数参数思想剖析

 #include<iostream>using namespace std;//定义了一个函数参数类型typedef int(*funcpointer)(int a, int b);int add(int a, int b){ cout << "a+b="<<a+b<< endl; return a + b;}int...

2018-09-02 19:39:46 178

原创 函数指针语法梳理

#include<iostream>using namespace std;//函数指针基本语法知识梳理//1、如何定义一个函数类型//2、如何定义一个函数指针类型//3、如何定义 一个函数指针(指向一个函数的入口地址)int add(int a, int b){ cout << "func add()="<<a+b<< endl...

2018-09-02 17:24:22 215

原创 数组指针基础知识

#include<iostream>using namespace std;//数组类型基本语法知识梳理//定义一个数组类型//int a[10];//定义一个指针数组类型//定义一个指向 数组类型的指针 数组类的指针void main(){ int a[10];//a成为数组元素的首地址 &a 代表取整个数组的地址 a+1的步长为4 &a+...

2018-09-02 16:47:01 165

原创 C++ 抽象类在多继承中的应用

 工程中的多继承         被实际开发经验抛弃的多继承;工程开发中真正意义上的多继承是几乎不被使用的;多重继承带来的代码复杂性远多于其带来的便利;多重继承对代码维护性上的影响是灾难性的,在设计方法上,任何多继承都可以单继承代替;多继承的应用场景          绝大多数面向对象语言都不支持多继承;绝大多数面向对象语言都支持接口的概念;但是C++中没有接口的概念;c++中可以使用...

2018-09-01 23:25:40 799

原创 抽象类的基本用法

纯虚函数和抽象类    纯虚函数是一个在基类中说明的虚函数,在积累中没有定义,要求任何派生类都定义自己的版本    纯虚函数为各派生类提供一个公共界面(接口的封装和设计、软件的模块功能划分)    纯虚函数说明形式:    virtual 类型 函数名(参数列表)=0    一个纯虚函数的基类成为抽象类; 例如:Shape 为一个抽象类    Shape x;//e...

2018-09-01 17:41:17 1378

原创 C++ vptr指针的分步初始化

对象中的vptr指针什么时候被初始化对象在创建时,由编译器对vptr指针进行初始化只有在对象的构造完全结束时,vptr指针的指向才最终确定父类的vptr指针指向父类的虚函数表子类的vptr指针指向子类的虚函数表#include<iostream>using namespace std;class parent{public: parent() {...

2018-08-31 15:57:11 486

原创 C++ 多态的实现原理

多态的实现原理    当类中声明虚函数时,编译器会在类中实现一个虚函数表    虚函数表是一个存储类成员函数指针的数据结构    虚函数表是由编译器自动生成和维护的的    virtual成员函数会被编译器放入虚函数表中    存在虚函数时,每个对象都有一个指向虚函数表的指针(vptr)#include<iostream>using namespace st...

2018-08-31 14:39:31 145

原创 C++ 重载重写重定义

 函数重载:    必须在同一个类中进行    子类无法重载父类的函数,父类同名函数将被名称覆盖    重载是在编译期间根据参数类型和个数决定函数调用函数重写;    必须发生于父类和子类之间    并且父类和子类中的函数必须有完全相同的原型    使用virtual声明之后能够产生多态(如果不使用virtual,那叫重定义)    多态是在运行期间根据具体对象...

2018-08-31 13:40:12 223

原创 C++ 虚析构函数

#include<iostream>using namespace std;class A{public: A() { p = new char[20]; strcpy(p, "obja"); cout << "A()"<< endl; } //如果不用virtual的话,子类申请的内存 无法释放 会造成内存泄露 virtual...

2018-08-31 11:29:57 194

原创 C++ 多态的使用条件

 实现多态的三个条件        1、要有继承        2、要有虚函数重写        3、用父类指针(父类引用)指向子类对象#include<iostream>using namespace std;//herofignter advherofighter enemyfighterclass herofignter{public: int v...

2018-08-30 17:44:41 785

原创 虚继承--一种调用,实现多种表现形态

#include<iostream>using namespace std;class A{public: A(int a=0) { this->a = a; cout << "我是爸爸构造"<< endl; } void virtual printf() { cout << "我是爸爸 a="<&

2018-08-30 16:56:08 174

原创 C++ 虚继承

 一、造成二义性的情况和虚继承的解决方案#include <iostream>using namespace std;class B{public: int b;};class B1: virtual public B{public: int b1;};class B2: virtual public B{public: int b2;};cl...

2018-08-30 15:35:44 182

原创 C++ 多继承

多继承概念:    一个类有多个直接基类的继承关系成为多继承    多继承声明语法:    class 派生类名:访问控制 基类名0,访问控制 基类名1.......    {        数据成员和成员函数声明    }多继承的派生类构造和访问    多个基类的派生类构造函数可以用初始时调用基类构造函数初始化数据成员    执行顺序与单继承构造函数情况类似,...

2018-08-30 14:36:47 169

原创 C++ 继承中同名成员变量和同名成员函数

 基类成员的作用域延伸到所有派生类 派生类的重名成员屏蔽基类的同名成员#include<iostream>using namespace std;class A{public: A(int a = 0, int b = 0) { this->a = a; this->b = b; cout << "我是爸爸构造"<&lt...

2018-08-30 12:40:34 1641

原创 C++ 继承和组合混搭下的构造与析构

#include<iostream>using namespace std;class object{public: object(int a=0, int b=0) { this->a = a; this->b = b; cout << "我是祖宗构造函数"<<a<<b<< endl; }

2018-08-30 11:22:43 203

原创 C++ 继承 之 构造析构顺序

#include<iostream>using namespace std;class parent{public: parent(int a,int b) { this->a = a; this->b = b; cout <<"我是爸爸构造函数" << endl; } void printfP() { } ~...

2018-08-29 22:03:31 656

原创 C++ 继承之 类型兼容性原则

类型兼容性原则    类型兼容原则是指在需要基类对象的任何地方,都可以使用公有派生类的对象来替代。通过公有继承,派生类得到了基类中除构造函数、析构函数之外的所有成员。这样公有派生类就具备了基类的所有功能。凡是基类能解决的问题。公有派生类都可以解决。类型兼容原则中所指的替代包括以下情况    1)子类对象可以当作父类对象使用    2)子类对象可以直接赋值给父类对象    3)子类对...

2018-08-29 21:22:02 462

原创 C++ 继承之 派生类的访问控制

继承说明    1、子类拥有父类的所有成员变量和成员函数    2、子类就是一种特殊的父类    3、子类对象可以当作父类对象使用    4、子类可以拥有父类没有的方法和属性派生类的访问控制    派生类继承了基类的全部成员变量和成员方法(除了构造和析构之外的成员方法),但是这些成员的访问属性,在派生过程中是可以调整的​ 不同继承方式会改变继承成员的访问属性1)...

2018-08-29 17:10:31 274

原创 C++ ()运算符的重载

#include<iostream>using namespace std;class test{public: double operator()(double a, double b) { return a + b; }private:};int main(){ test f; cout << f(1, 2); system("pau...

2018-08-28 16:56:03 139

原创 C++ =、[ ]、==、!=的重载

//Array.h#pragma once#include<iostream>using namespace std;class Array{public: Array(int length); Array(const Array& obj); ~Array();public: void setdata(int index, int data); ...

2018-08-28 16:35:24 29387 2

原创 C++ 重载左移运算符

#include<iostream>using namespace std;class Complex{public: friend ostream& operator<<(ostream &out, Complex &c); Complex(int a=0, int b=0) { this->a = a; this-...

2018-08-27 23:56:46 1277 2

原创 C++ 一元运算符的重载(前置++ --,后置 ++ --)

#include<iostream>using namespace std;class Complex{public: friend Complex& operator++(Complex &tmp); friend Complex operator++(Complex &tmp, int); Complex(int a=0, int b=0)...

2018-08-27 17:23:54 835

原创 C++运算符重载的两种方法

#include<iostream>using namespace std;class Complex{public: Complex(int a=0, int b=0) { this->a = a; this->b = b; } //成员函数 实现“-”的重载 Complex& operator-(Complex &c) {...

2018-08-27 16:03:44 1091

原创 C++ 重载运算符基础

   运算符重载的本质是 函数的调用      重载运算符函数可以对运算符做出新的解释,但原有基本语意不变    1、不改变运算符的优先级    2、不改变运算符的结合性    3、不改变运算符所需要的操作数    4、不能创建新的运算符     运算符重载的两种方法    用成员或友元函数重载运算符    1、运算符可以重在为成员函数或友元函数  ...

2018-08-27 15:24:49 215

原创 C++友元函数 友元类

//友元类#include<iostream>using namespace std;class A{public: friend class B;private: int a;};class B{public: void setB(int a) { Aobject.a = a; } void printfB() { cout <&...

2018-08-26 23:30:11 176

原创 C++类的设计与实现(对象数组)

//array,h#pragma once#include<iostream>using namespace std;class Array{public: Array(int length); Array(const Array& obj); ~Array();public: void setdata(int index, int data); ...

2018-08-26 16:55:05 690

原创 C++ 全局函数与成员函数(返回元素 引用 *this)

#include<iostream>using namespace std;class test{public: int a; int b;public: test(int a = 0, int b = 0) { this->a = a; this->b = b; cout << "a=" << a <<...

2018-08-26 15:50:12 1085

原创 C++ const修饰this指针

#include<iostream>using namespace std;class test{public: //const修饰this指针 即指针所指向的内存空间 //所以this->a,this->b一旦被修改就会报错 void play(int a,int b) const { a = 100;//编译没有错误,即const修饰的不是该...

2018-08-26 10:48:20 351

原创 C++ 静态成员变量和静态成员函数

#include<iostream>using namespace std;class test{public: //静态成员函数 //静态成员函数只能调用静态成员变量 不能调用普通成员变量 //普通变量为每个对象本身所拥有,而静态成员变量为所有对象共同拥有 //如果静态成员函数调用普通变量的话,静态函数不知道自己调用的是哪一个对象的变量 static void ...

2018-08-25 18:51:35 136

原创 C++ new和delete

#include<iostream>using namespace std;//1、malloc和free是C语言中的函数// 而new和delete是C++中的操作符//2、malloc和new最根本的区别是,new可以调用构造函数初始化对象// free和delete最大的区别是,delete可以调用析构函数 //3、当申请空间的对象为基础类型和数组...

2018-08-25 18:07:28 160

原创 C++ 构造中调用构造——强化训练(三)

#include<iostream>using namespace std;class test{public: test(int a, int b, int c) { m_a = a; m_b = b; m_c = c; cout << "我是构造函数1" << endl; } test(int a, int b) { ...

2018-08-25 16:45:02 139

原创 C++ 匿名对象的生命周期——强化训练(二)

#include<iostream>using namespace std;class ABCD{public: ABCD() { } ABCD(int a, int b, int c) { m_a = a; m_b = b; m_c = c; cout << "ABCD类有参构造"; cout << "a=" &lt...

2018-08-25 16:14:39 1115

原创 C++ 构造和析构调用顺序——强化训练(一)

​​#include<iostream>using namespace std;class ABCD{public: ABCD() { } ABCD(int a, int b, int c) { m_a = a; m_b = b; m_c = c; cout <<"ABCD类有参构造" ; cout <<"a="&l...

2018-08-25 15:53:01 242

原创 C++构造函数对象初始化列表

对象初始化列表    1)对象初始化列表出现的原因        必须这样做   如果我们有一个类成员,它本身是一个类或者是一个结构,而且这个成员它只有一个带参数的构造函数,没有默认构造函数,这时要对这个类成员进行初始化,就必须调用这个类型员的带参数的构造函数。如果没有初始化列表,那么他将无法完成第一步。#include<iostream>using namespac...

2018-08-25 11:45:33 344

原创 C++浅拷贝与深拷贝

浅拷贝:    两个辅助变量指向同一内存空间,有一个对象obj2把指向的同一内存空间析构掉,而obj1会再一次析构这一内存空间,在这个时候就会发生错误,obj1会指向一个垃圾值,会出现野指针的现象;    解决此问题的方案为深拷贝 浅拷贝#include<iostream>using namespace std;class test{public:...

2018-08-24 18:54:47 134

原创 C++构造函数调用规则

    C++构造函数调用规则    1)当类中没有定义任何一个构造函数时,C++编译器会提供默认无参构造函数和默认拷贝构造函数    2)当类中定义了拷贝构造函数时,C++编译器不会提供无参数构造函数    3)当类中定义了任意的非拷贝构造函数时,当类中提供了有参构造函数或无参构造函数,c++编译器不会提供无参构造函数    总结:只要你写了构造函数,那么必须要用 构造析...

2018-08-23 16:44:24 848

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除