大一下C++整理??

1 C到C++

1.1 指针与引用

一、 指针

  1. 指针在使用之前必须初始化 野指针的指向是无法控制的
  2. 指针变量所占的空间大小相当于一个整型变量的大小(随着机器改变 32位机中占4个字节)

二、 引用

1.2 名字空间

namespace
在使用变量前要确定其所在位置–影响变量的生存周期

1.3 字符串与string类

  1. 字符串是以数组形式存放数据的 最后一位是空白结束符0 所以字数组长度比字符串长度多一
    字符串的相关操作都是通过C中的库函数实现的 如:char* strcpy(char* str1, char* str2);为什么使用指针操作str呢?
    char* str1;	//只是声明str1 因为没有相对应的内存 所以使用strcpy无法存储
    char* str2 = new char[5]; //str2指向一个5个char大小的内存空间
    
    1.int类型的数据是如何存放的
  2. string在C++中的使用https://blog.csdn.net/Wchenchen0/article/details/81042596
  3. string是由STL提供的string类 在声明后 会根据输入数据的大小自动分配内存大小
  4. string 在使用时 应在文件开头带上头文件 #include 其中包含默认构造函数 可以直接对string对象进行初始化操作
#include <iostream>
#include <string>
using namespace std;


int main()
{
    string s1;
    s1="chenchen";
    cout<<s1<<endl;				//chenchen
 
    string s2(s1);
    cout<<s2<<endl;				//chenchen
 
    string s3("value");
    cout<<s3<<endl;				//value
 
    string s4(10,'c');
    cout<<s4<<endl;				//cccccccccc
 
    return 0;
}
  1. 什么时候使用string类

1.4 变量

  1. 存储
  2. 传递方式

1.5 函数

  1. C++中函数参数的意义不仅仅是某个类型的变量 很多时候是指向数据流的一个窗口,或者数据集合以及一组相关的操作,也就是对象。
  2. max(a,b); 是可以直接调用的函数
进程空间 存放内容
代码区 存放代码块
全局数据区 全局数据、常量、文字量、静态全局变量、静态局部变量
堆区 程序中产生的动态内存
栈区 函数数据(即局部变量)先进后出

可执行程序文件装载到计算机内存中才能运行

1.6 函数重载

函数是全局的,不能重名
参数的类型,数量,形参的类型、数量、排列顺序
参数个数不同
参数类型不同
参数顺序不同
注意:返回值类型不能作为区分同名函数的条件,因为在匹配函数时只根据参数来匹配函数,而不关注函数的返回值

1.7 extern关键字

  1. 用于声明外部成员函数、成员数据
  2. 可以置于变量或者函数前,以表示变量或者函数的定义在别的文件中,提示编译器遇
    到此变量和函数时在其他模块中寻找其定义。另外,关键字 extern也可用来进行链接指定

感觉非常难受 自己不知道该从哪里下手去学习C++ 果然不该随意放纵自己 导致现在什么都不会 啥都不知道

2 类和对象的创建

2.1 类

声明一个结构体相当于自定义一个新的变量类型 后面可以使用此类型声明新的变量

  1. 类是一个泛称,是一个抽象概念 ;而对象是一个具体概念
    将多个对象的共同之处提取出来所得到的共同部分就是类

2.2 构造函数

一匹配 二传递 三构造数据成员 四执行构造函数的函数体
为什么说先构造数据成员 再执行构造函数的函数体呢?成员不是再函数题中声明的吗?

  1. 特征:
    构造函数的名字与类名相同
    不具有任何返回值 void也不行,没有类型
  2. 每当创建对象时,需要添加初始化代码时,则需要定义自己的构造函数;而对象撤销时,需要自己添加清理工作的代码时,则需要定义自己的析构函数

2.3 析构函数

3 类和对象的使用

vector容器

  1. 可以存放任意类型的动态数组

!4 运算符重载

!5 继承和派生

5.1 继承

  1. 子类可以根据通过继承方式(public/private)得到父类的一些特征 但是注意
  2. 例题:B隐式转化为A
    · class B:public A{} 类 B公有继承自类 A,因此,类 B能隐式转换为类 A
    · class B{operator A();} C++中 operator有两个作用:运算符重载和类型转换函数。下面主要介绍类型转换函数,它有如下几个特点:
    ①函数定义在类中。
    ②用 operator来修饰,被修饰的函数名为待转换的目弊钹型。
    ③函数没有参数和返回值,但是函数体内有 return语句。 class B{operator A();}就是一个转换函数,用来把 B类型的对象转换为 A类型的对象,
    · class A{A(const B&);}类 A实现了参数为 B的构造函数, B能隐式转换为 A
    · 但 class A:public B{} 不能隐式转换,类 B是类 A的父类,子类包含了父类部分,子类可以转换为父类,但父类没有子类额外定义的部分,是不能隐式转换成子类的

5.2

!6 多态性与虚函数

6.1 虚函数virtual

  1. 虚函数指一个类中希望被重载的成员函数,当使用一个基类指针或引用指向一个继承类对象的时候,调用一个虚函数时, 实际调用的是继承类的版本
  2. https://www.cnblogs.com/weiyouqing/p/7544988.html

6.2 基类

  1. 什么时候使用基类指针?

7 文件系统

7.1 文件输入输出流

ofstream是输出流 是将数据输入文件 还是将文件中的内容读出至程序中

1. 如何判断引用?2. 所谓容器是什么?是用来承载具体对象的载体吗?3. vector是什么?将它理解为容器?还是指针?如果是容器的话 和链表有什么区别?4.this指针的使用方法http://blog.chinaunix.net/uid-21411227-id-1826942.html 5.string类总结https://www.cnblogs.com/X-Do-Better/p/8628492.html 6.基类指针https://zhidao.baidu.com/question/335978078.html 7.

猜你喜欢

转载自blog.csdn.net/weixin_45349512/article/details/100192364