学习C语言升级c++的笔记

此篇文章在2022年2月8日被记录,工作这两年多了,也没用过C++做开发,令人唏嘘

1、

#include<cmath>

#include<cstdio>

用这种方法来调用C语言中的函数

2、namespace 名字空间,防止命名重复

::叫做限定调用符

using namespace X :引入整个名字空间

using X:: name 使用单个名字

X::name 在程序中加上名字空间前缀

3、#include<iostream>

using namespace std std意味着标准名字空间

4、变量定义 “即用即定义”

临时变量定义的作用范围为程序块中,使用“{}”包含

5、引用类型:一个变量是另一个变量的别名

使用引用可以在函数中修改形参就可以实现对实参的修改,引用可以提高效率

6、inline 内联函数 给编译器声明

给编译器用,代码替换,减少执行时内存的开销

7、try-catch处理异常

throw 抛出值,try catch配合使用,抛出不同类型值需要不用的catch承接。

8、默认形参:形参带有默认值时放在形参最右边

9、函数重载,C++允许函数同名,形参需要不同根据输入参数确认调用那个函数,但是不能根据返回类型区别函数

10、运算符重载:没看懂

11、模板 template 函数:厌倦了对每种类型求最小值,举例:

template<class T> "T"为泛指类型
T minValue(T a,T b)
{
    if(a<b)return a;
    else return b;
}

不能同时传入两个不同类型的数据。

12、动态内存分配

new与delete //堆存储区

可以对类对象调用初始化构造函数或销毁析构函数

与C语言中的内存申请差不多

13、类 在C的struct类型上,增加了“成员函数”

C++中的struct是为了兼容C++,并不建议使用

14、自引用,成员函数重载运算符

struct Data{
Data& add(int dd)
d=d+dd;
return *this;
};
Data.add(7)add(4);

15、构造函数与析构函数:

构造函数在结构体中定义一个与结构体名称相同的函数,析构函数可以用来初始化,申请内存。

例如:Data day(4.6.1999);

若内有定义构造函数,则编译器对定义一个默认的构造函数;

析构函数:用来释放内存

virtual ~student(){delete name};

在数据使用完毕之后必须释放内存不然会造成内存泄漏。

16、访问控制与接口

class定义的成员默认是私有的

struct定义的成员默认是公开的

class可以通过公开成员去访问修改私有成员

17 拷贝:拷贝构造函数,赋值运算符(使用地方应该不多,不过多讲解)

18、在类外定义成员函数

所有的成员函数都必须在类声明之后才能在类外定义,在外部定义一定要加上作用域

19、类模板

templete
用T代表可能出现的类型,泛型

使用时,Array <int> t(n)

Array:类名

int:编译器把所有的T替换为int型。

20、typedef int INT ;//只能用来类型定义

21、string-vector string的所有用法

22、派生类:

派生类从已有的类继承而来,如:

class Manager:public Employee
{
}

派生类只能通过初始化基类,不能操作访问基类的成员函数

23、虚函数和多态

派生类的指针可以自动转化成基类指针,基类指针在调用派生类函数时依然调用基类函数,使用虚函数防止该种情况,实现了多态。

应当根据类的实际调用函数。

24、多重派生···

未完待续

posted @ 2024-12-06 17:01  shumei52  阅读(16)  评论(0)    收藏  举报