c++ 基础
诘问我的执着
这个作者很懒,什么都没留下…
展开
-
c++基础复习——类的静态成员
静态成员就是在成员变量和成员函数前加上关键字static,称为静态成员1.静态成员变量所有对象共享同一份数据 在编译阶段分配内存 类内申明,类外初始化2.静态成员函数所有对象共享一个函数 静态成员函数只能访问静态成员变量 #include <iostream>using namespace std;class Person{public: st...原创 2019-07-28 21:57:15 · 104 阅读 · 0 评论 -
c++基础复习——对象初始化与清理
1.构造函数与析构函数一个对象如果没有初始化状态,那么他的使用后果是未知的;同样如果使用完一个对象,没有及时清理,也会造成一定的安全问题。c++为此提供了构造函数以及析构函数,如果我们不提供,编译器也会自己提供。构造函数:创建对象时为对象的成员属性赋值,构造函数由编译器自动调用,无需手动调用 析构函数:对象销毁前系统自动调用,执行一些清理工作构造函数的语法:构造函数没有返回值也...原创 2019-07-28 20:58:25 · 187 阅读 · 0 评论 -
c++基础复习——封装
1.封装的意义c++面对对象的三大特性为:封装,继承和多态封装的意义:将属性和行为作为一个整体,表现生活中的事物 将属性与行为加以权限控制2.访问权限公共权限 public 成员 类内可以访问 类外可以访问 保护权限 protected 成员 类内可以访问 类外不可以访问 儿子可以访问父亲中的保护内容 私有权限 private 成员 类内可以访问 类外不可...原创 2019-07-28 19:17:19 · 132 阅读 · 0 评论 -
c++基础复习——多态的纯虚函数和抽象类
在多态中,通常父类中的虚函数的实现是毫无意义的,主要都是调用子类重写的内容因此可以把虚函数改为纯虚函数当类中有了纯虚函数,这个类也叫做抽象类抽象类的特点:无法实例化对象 子类必须重写抽象类中的纯虚函数,不然也属于抽象类class animal{public: //只要有一个纯虚函数,就称为抽象类 virtual void speak() = 0;};...原创 2019-08-05 22:54:52 · 207 阅读 · 0 评论 -
c++基础复习——多态的基本概念
1.多态的基本概念多态分为两类:静态多态:函数重载和运算符重载属于静态多态,复用函数名 多态多态:派生类以及虚函数实现运行时多态静态多态和动态多态的区别:静态多态的函数地址早绑定,编译阶段确定函数地址 动态多态的函数地址晚绑定,运行阶段确定函数地址#include <iostream>using namespace std;class animal{pu...原创 2019-08-05 22:45:12 · 222 阅读 · 0 评论 -
c++基础复习——菱形继承以及解决方法
#include <iostream>using namespace std;class Animal{public: int m_age;};//利用虚继承可以解决菱形继承//animal称为虚基类class Sheep :virtual public Animal{};class Tuo :virtual public Animal{};...原创 2019-08-05 22:06:14 · 179 阅读 · 0 评论 -
c++基础复习——函数重载
1.函数重载概述作用:函数名可以相同,提高复用性满足的条件:同一个作用域下 函数名相同 函数参数类型不同,或者个数不同或者顺序不同 注意:函数的返回值不可以作为函数重载的条件2.函数重载的注意事项 引用作为重载条件 函数重载遇到函数默认参数 #include <iostream>using namespace std;void fun(...原创 2019-07-27 15:25:56 · 232 阅读 · 0 评论 -
c++基础复习——继承同名成员的处理方式
1.当子类与父类出现同名的成员时访问子类的同名成员,直接访问 访问父类的同名成员,需要加作用域 子类与父类拥有同名的成员函数的时候,子类会隐藏父类的成员函数,需要加上作用域访问父类的同名函数2.当同名的成员是静态成员的时候#include <iostream>using namespace std;class Base{public: static in...原创 2019-07-31 23:07:52 · 117 阅读 · 0 评论 -
c++基础复习——继承的对象模型以及构造析构顺序
1.继承的对象模型父类中的所有非静态成员属性都会被继承下去(没有this指针的都不会被继承,无论基类派生了多少子类,派生类对象都引用这个相同的、单一的、共享的静态成员。静态成员只存在一个实例。静态变量是共享而不是继承,他可以被子类共享但是不能继承。 父类中的私有成员函数是被编译器隐藏了所以访问不到,但是确实被继承下去了。#include <iostream>using na...原创 2019-07-31 23:00:31 · 111 阅读 · 0 评论 -
c++基础复习——继承的基本语法与方法
1.继承的基本语法class 子类 : 继承方式 父类class son:public father继承的作用是:减少重复代码2.继承的方式公共继承 保护继承 私有继承原创 2019-07-31 22:33:44 · 137 阅读 · 0 评论 -
c++基础复习——友元
在程序中,有时候我们需要类外的特殊函数或者类也可以访问私有熟悉,这时候就要友元技术友元的目的就是让一个函数或者类能够访问另一个类中的私有成员。友元的三种实现:全局函数做友元 类做友元 成员函数做友元#include <iostream>#include <string>using namespace std;/*成员函数做友元*/class m...原创 2019-07-31 22:23:30 · 116 阅读 · 0 评论 -
c++基础复习——函数提高
1.函数默认参数c++中,函数的形参列表中的形参是可以由默认值的#include <iostream>using namespace std;//如果我们传入数据,就用自己的数据,否则使用默认参数//返回值类型 函数名 (形参 = 默认值)int fun(int a,int b = 10, int c = 20){ return a+b+c;}//z...原创 2019-07-25 22:28:45 · 155 阅读 · 0 评论 -
c++基础复习——引用
1.引用的基本语法作用:给变量起别名 语法:数据类型 &别名 = 原名2.引用的注意事项引用必须初始化 引用在初始化之后,不可以发生改变3.引用作为函数参数#include <iostream>using namespace std;//交换函数//1.值传递void myswap1(int a, int b) { int t...原创 2019-07-25 22:00:32 · 108 阅读 · 0 评论 -
c++基础复习——程序的内存模型
1.内存分区模型代码区:存放函数体的二进制代码,由操作系统进行管理 全局区:存放全局变量和静态变量以及常量 栈区:由编译器自动分配和释放,存放函数的参数值,局部变量等 堆区:由程序员分配和释放,若没有释放,程序结束时由操作系统回收2.1程序运行前代码区: 存放cpu执行的机器指令 代码区是共享的,共享的目的是对于频繁被执行的程序,只需要在内存中有一份代...原创 2019-07-25 21:11:17 · 130 阅读 · 0 评论 -
c++基础复习——c++对象模型和this指针
1.在c++中,成员变量和成员函数分开存储只有非静态的成员变量才属于类的变量上,成员变量和成员函数是分开存储的当定义一个空类,求空类的大小#include <iostream>using namespace std;class Person{ };void test1(){ Person p; cout << "size...原创 2019-07-29 23:11:45 · 286 阅读 · 0 评论 -
c++基础复习——拷贝构造函数
1.拷贝构造函数的调用时机使用一个已经创建完的对象来初始化另一个对象 值传递的方式给函数参数传参 以值的方式返回局部对象#include <iostream>using namespace std;class Person{public: Person() { cout << "Person默认构造函数" <<...原创 2019-07-28 21:39:10 · 178 阅读 · 0 评论