
c++基础
chde2Wang
滴水穿石
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
2020-08-05
a = { "code": 200, "msg": "success", "data": { "list": { "pay_column": [], "column": [ { "id": 6443650, "app_id": 1561979372, "username.原创 2021-06-22 18:31:28 · 101 阅读 · 0 评论 -
C++基础15-类和对象之多态
总结:1、在父类中申明虚函数时,一般情况下在子类中也申明(便于读代码)一、赋值兼容赋值兼容规则是指在需要基类对象的任何地方都可以使用公有派生类的对象来替代。 赋值兼容是一种默认行为,不需要任何的显示的转化步骤。 赋值兼容规则中所指的替代包括以下的情况: 派生类的对象可以赋值给基类对象。 派生类的对象可以初始化基类的引用。 ...原创 2019-08-14 21:51:28 · 224 阅读 · 0 评论 -
C++基础16-类和对象之联编,重写,虚析构
1、静态联编和动态联编 1、联编是指一个程序模块、代码之间互相关联的过程。 2、静态联编(sta5c binding),是程序的匹配、连接在编译阶段实现,也称为早期匹配。重载函数使用静态联编。 3、动态联编是指程序联编推迟到运行时进行,所以又称为晚期联编(迟绑定)。switch 语句和 if 语句,多态是动态联编的例子。说明:1、C++与C相同,是静态编译型语言 2、在编译...原创 2019-08-14 21:54:12 · 215 阅读 · 0 评论 -
C++基础09-货物售卖和MyArray实现
1、货物出货与进货#if 0#include<iostream>using namespace std;/*某商店经销一种货物。货物购进和卖出时以箱为单位。各箱的重量不一样,因此商店需要记录目前库存的总重量,现在用C++模拟商店货物购进和卖出的情况*/class Goods {public: Goods() { weight = 0; next = N...原创 2019-08-11 16:09:25 · 559 阅读 · 0 评论 -
C++基础10-类和对象之友元函数
采用类的机制后实现了数据的隐藏与封装,类的数据成员一般定义为私有成员,成员函数一般定义为公有的,依此提供类与外界间的通信接口。但是,有时需要定义一些函数,这些函数不是类的一部分,但又需要频繁地访问类的数据成员, 这时可以将这些函数定义为该 函数的友元函数。除了友元函数外,还有友元类, 两者统称为友元。友元的作用是提高了程序的运行效率(即减少了类型检查和 安全性检查等都需要时间开销),但它破坏了类的...原创 2019-08-11 17:26:59 · 549 阅读 · 0 评论 -
C++基础17-纯虚函数和抽象类
总结:1,含有纯虚函数的类,称为抽象基类,不可实列化。即不能创建对象,存在 的意义就是被继承,提供族类的公共接口。 2,纯虚函数只有声明,没有实现,被“初始化”为 0。 3,如果一个类中声明了纯虚函数,而在派生类中没有对该函数定义,则该虚函数在派生类中仍然为纯虚函数,派生类仍然为纯虚基类。 1、基本概念 纯虚函数是一个在基类中说明的虚函数,在基类中没有定义,要求任何派生类都定义...原创 2019-08-15 17:06:33 · 454 阅读 · 0 评论 -
C++基础18-抽象类-电脑组装练习
01电脑组装me.cpp需要实现所有的虚函数,不台灵活。架构函数无法写,设计不够成熟#if 1#include<iostream>using namespace std;class Computer {public: virtual void caculate() = 0; virtual void display() = 0; virtual void sto...原创 2019-08-15 17:09:15 · 217 阅读 · 0 评论 -
C++基础11-类和对象之操作符重载1
总结:1、运算符重载的本质是函数重载2、运算符重载可分为成员函数重载和全局函数重载(差一个参数)3、运算符重载函数的参数至少有一个是类对象(或类对象的引用)4、不可以被重载的操作符有:成员选择符(.) 成员对象选择符(.*) 域解析操作符(::) 条件操作符(?:)5、前置加加 可以连续...原创 2019-08-11 22:14:48 · 601 阅读 · 0 评论 -
C++基础11-类和对象之操作符重载2
总结:1、等号操作符重载和拷贝构造函数重载一般用在数据成员中需要单独在堆区开辟内存时(指针)2、new,delete重载内部还是使用malloc和free3、逗号表达式(,)、或者(||),且(&&),条件表达式(?:)具有短路功能。 但重载后失去此功能,故不建议重载这两个运算符4、自定义智能指针auto_ptr(在c++11新特性中已经被移除)是一个模板类。...原创 2019-08-12 21:54:46 · 205 阅读 · 0 评论 -
C++基础07-类之静态成员变量和成员函数
总结:1、静态数据成员和静态成员函数属于整个类而不是某个对象 即使没有定义对象,静态成员也是存在的2、static 成员类外存储,求类大小,并不包含在内。 (因为存储在全局区,而类一般存储在栈区)3、静态数据成员在类中说明,在类外定义 并且会给他分配内存空间,并初始化(一经定义则必须初始化)4、静态数据成员的生存周期一直存在于整个程序的生命周期4、静态成员函数只能访问静...原创 2019-08-10 17:44:06 · 476 阅读 · 0 评论 -
C++基础06-类与对象之new和malloc
1、C和C++动态分配内存区别: 在C语言中是利用库函数malloc和free来分配和撤销内存空间的。 C++提供了较简便而功能较强的运算符new和delete来取代 malloc和free函数。new和delete是运算符,不是函数,因此执行效率高。2、new和delete的用法<1>用法示例:new int; //开...原创 2019-08-10 15:24:02 · 889 阅读 · 0 评论 -
C++基础14-类和对象之多继承与虚继承
多继承:一个类有多个直接基类的继承关系称为多继承总结:1、一般将具有菱形样式继承方式的某些类声明为虚继承3、虚继承的主要目的是为了防止二义性2、虚继承就是在继承方式前加virtual如果一个派生类从多个基类派生,而这些基类又有一个共同的基类,则在对该基类中声明的名字进行访问时,可能产生二义性如:虚继承virtual 如果一个派生类从多个基类派生,而这些基类又有一...原创 2019-08-14 14:54:22 · 201 阅读 · 0 评论 -
C++基础02-C++对c的拓展
变量名实质上是一段连续存储空间的别名,是一个标号(门牌号) 通过变量来申请并命名内存空间. 通过变量的名字可以使用存储空间. 变量名,本身是一段内存的引用,即别名(alias). 引用可以看作一个已定义变量的别名。 引用的语法:Type& name = var; int a=10;//c编译器分配4个字节内存, a内存空间的别名 int &b=a; ...原创 2019-08-04 18:58:44 · 242 阅读 · 0 评论 -
C++基础03-C++对c的拓展-函数
一、内联函数c 语言中有宏函数的概念。宏函数的特点是内嵌到调用代码中去,避免了函数调用 的开销。但是由于宏函数的处理发生在预处理阶段,缺失了语法检测 和有可能带来的语 意差错。特点: 1)内联函数声明时inline关键字必须和函数定义结合在一起,否则编译器会直接忽略内联请求。 2)C++编译器直接将函数体插入在函数调用的地方 。 3)内联函数没有普...原创 2019-08-08 15:44:42 · 180 阅读 · 0 评论 -
C++基础04-类基础
一、类和对象面向对象三大特点:封装、继承、多态。 struct 中所有行为和属性都是 public 的(默认)。C++中的 class 可以指定行为和属性的访问方式。 封装,可以达到,对内开放数据,对外屏蔽数据,对外提供接口。达到了信息隐蔽的功能。 class 封装的本质,在于将数据和行为,绑定在一起然后能过对象来完成操作。 #if 1#define _CRT_SECU...原创 2019-08-08 22:05:05 · 196 阅读 · 0 评论 -
C++基础12-类和对象之操作符重载-string练习
总结:1、等号操作符重载注意事项: (1)防止自身赋值 (2)先将自身的额外开辟的空间回收掉 (3)执行深拷贝2、注意函数的返回引用或者元素:如果需要连续使用 返回元素3、如果一个函数传递const修饰的对象,那么此对象调用的成员函数也应为const类型4、重载小括号 称这种对象为仿函数5、字符串>>重载时防止初始化的字符串长度为空MyStrin...原创 2019-08-13 17:10:11 · 150 阅读 · 0 评论 -
C++基础13-类和对象之继承1
在 C++中可重用性(software reusability)是通过继承(inheritance)这一机制来实现的。 如果没有掌握继承性,就没有掌握类与对象的精华。总结:1、只要是父类中的private成员,不管是什么继承方式,儿子都访问不了,但它是存在在儿子之中的2、如果是公有(public)继承, 儿子中的访问控制权限保持不变。3、如果是保护(protected)继承, 儿子中父...原创 2019-08-13 21:56:26 · 198 阅读 · 0 评论 -
C++混淆点-构造函数参数
#include<iostream>using namespace std;class Test {public: //Test(int x, int y) { //或者将形参名不要等于数据成员名 // //x = x; //自赋值 错误 // //y = y; // this->x = x; //正确 形参a屏蔽了成员变量a,所以必须用this指针索引,这...原创 2019-08-09 13:21:29 · 204 阅读 · 0 评论 -
C/C++混淆点-字符串指针
c语言中没有字符串的类型,所以对字符串操作,有两种形式:可以用字符指针,或者字符串数组(这里的指针变量c, 系统会为其重新分配内存)(1)用字符数组存放一个字符串char string[]="Linux C";printf("%s\n",string);string是一个字符数组名,它同时也是该字符数组的首地址。(2)用字符...转载 2019-08-09 16:53:04 · 430 阅读 · 0 评论 -
C++基础05-类构造函数与析构函数
总结:1、类对象的作用域为两个{}之间。在遇到}后开始执行析构函数2、当没有任何显式的构造函数(无参,有参,拷贝构造)时,默认构造函数才会发挥作用 一旦提供显式的构造函数,默认构造函数不复存在,默认构造函数都会被覆盖掉。若想调用,则显示提供默认构造函数3、析构函数不能重载,没有参数,没有返回值。显示提供析构,默认析构就会被覆盖掉4、当调用默认构造函数时,类对象的数据成员值...原创 2019-08-09 17:39:10 · 413 阅读 · 0 评论 -
C++基础13-类和对象之继承2
总结:1、子类对象可以当做父类对象使用2、子类对象可以直接赋值给父类对象3、子类对象能够直接初始化父类对象4、父类指针可以直接指向子类对象5、凡是继承过来的属性和函数都可以在子类中用this-> 进行访问6、默认构造函数并不会初始化数据成员7、如果子类数据成员和父类数据成员名称相同。在子类用利用:: 访问父类数据成员,this-> 默认为子类数据成员8、构造函数和...原创 2019-08-14 14:41:28 · 249 阅读 · 0 评论 -
C++基础01-C++对c的增强
所谓namespace,是指标识符的各种可见范围。C++标准程序库中的所 有标识符都被定义于一个名为std的namespace中。 一 :<iostream>和<iostream.h>格式不一样,前者没有后缀,实际上, 在你的编译器include文件夹里面可以看到,二者是两个文件,打开文件就会发现,里面的代码是不一样的。后缀为.h的头文件c++标准已经明确提出不支持了...原创 2019-08-02 16:52:32 · 134 阅读 · 0 评论