C++学习笔记 lesson1 C to C++

这篇博客介绍了C++相对于C语言的一些关键特性,包括bool类型的使用,const常量,域运算符和域作用符,new和delete操作符,函数重载,默认实参,内联函数,C++风格类型转换,引用的概念以及按引用传递参数。通过这些特性,C++提供了更高效、更灵活的编程能力。

C++能提高程序的运行效率,节约更多的资源。
C++是编程语言的联盟

bool

C语言中使用bool需要引<stdbool>,定义了0和1分别为true和false

C++中 ,bool和int可以相互转化

int -> bool 0为false,非0为true

bool -> int  true ==1 false==0 

const

将变量常量化,编译器在语法层面上进行检测。
使用#define 定义的都是真常量

域运算符 Domain Operator

#include<iostream> //标准C++库

#include<stdio.h>//c 继承来的

#include<cstdio>//C 继承来,符合 C++标准

 int num =100;  //占用全局空间

int main()

{

    int num =10; // 栈空间

   retrun 0;

}

域作用符 : :

当::前面为空时代表全局空间

std::  命名空间为std ,所有的函数和变量都是标准库中的函数和变量


new和delete

在C语言中进行堆操作的时候调用的是malloc 和 free 

C++ 使用new 和 delete

int * pNum = new int (100) 分配一个int类型 的空间,并且值为100

delete pNum;

int *pArray = new int [10]; // 分配连续的空间

delete[]p; // 释放时为数组


new 和 delete 是运算符

malloc和free是函数


Overloaded 重载

 重载可以使用相同的函数名,函数的参数是不同的

编译器会根据参数类型来进行匹配,虽然函数名相同,其实上是完全不同的几个函数

如何重载

编译器会保存符号表,编译器会知道当前变量,以及占用的空间,解析方式(数据类型)

记录函数的参数类型,然后二者匹配。把任何一个函数名进行命名粉碎,把函数名变成函数名加上参数类型来支持重载

函数参数的顺序不一样可以构成重载

重载让我们非常方便的进行一系列的调用,同一个功能的函数不用起多个名字,解决了因为数据类型不同出现的问题。

重载匹配规则

精准匹配    尽量使用

提升匹配         char -> int  float -> double

类型转换匹配   int -> unsigned int 

重载使用过多会出问题,根据业务需求决定


默认实参

void MyCount(char *str , bool line="true")

必须出现在整个函数的最右边,

二义性:编译器无法找打与之对应的唯一函数

解决二义性:唯一匹配;调用时确定精确参数。


内联函数

inline 

调用时,不会新建栈,将代码展开,提高了运行的效率

生成的体积会膨胀。

根据栈的使用情况来解析,使用的空间不会占用太多


C++风格类型转换

 int num = static_cast<int>(1.0003);//不是强制转换,表示转换c++风格

 经常使用在基类指针指向派生类指针

 reinterpret_cast<> 强制转换  二进制层面的转换 

 

引用

在某一个方法之类修改方法之外的值,必须使用指针,指针使得已经要修改的数据类型变成了指针类型。

使用引用必须指向一个变量

int val =100;

int &refval = val;  //引用是变量的别名,没有独立空间,共用同一个空间。 (数据类型无法修改)

int *pVal = &val; // 指针拥有独立空间, 指向某一个变量 弱关联(指向的变量可修改)

const int num = 500;

const int& refnum = num ; //用const 引用接收  


按引用传递

将形参实参化。将参数作为变量使用,作用于外部的

函数之间的值传递是通过栈来完成的 

将引用作为返回值 ,传递类的需求使用引用来代替,但是引用无法指向堆空间,只有指针能指向

int &Index(int index)

{

   return array[index];

}       

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值