C++ 基础
前言:只记录与C的区别
①命名空间
命名空间 namespace 作用:可以通过命名空间辨别相同名字的函数或变量
命名空间定义:
namespace Li { name=1; } namespace RU { name=2; }
调用:
name1=LI::name; name2=RU::name;
C++的输入输出与换行符
std::cin>>;//输入 std::cout<<;//输出 std::endl;
C++在输入输出中取消了占位符,与python类似
②数据类型与表达式
- C++比C多了3种数据类型:
类型转换:
从短字节类型转化为长字节类型,反之容易造成数据丢失
③动态内存管理
C中的malloc() free函数与C++中的new()和delete()函数类似
C++中的new与delete必须配套使用,delete只能释放new创建的空间
④函数重载
即可以存在相同名字的函数,编译器自动通过函数的参数类型与参数个数进行区分
⑤inline:用inline定义一个内联函数
#include<iostream>
inline int abs(int value)
{
return (value < 0 ? -value : value);
}
int main()
{
int m = -2, ret;
ret = abs(++m);
std::cout << ret;
system("pause");
}
好处:
- 内联函数既具有宏定义优点,又克服了宏定义的缺点
- 在编译时,调用内联函数系统自动用函数体进行替换,减少了调用开销
注意:
- 通常只将频繁调用的、函数体较小的函数定义为内联函数
- 内联函数内不允许有循环、switch语句,否则按普通函数处理
⑥C++与C的const区别
具体查阅下篇这篇我转载的博客
(29条消息) C++和C中const的区别_Ersansui的博客-CSDN博客
主要区别:
- C++为内部链接,C为外部链接,即外部文件能否通过extern调用**(此处查阅上述链接)**
- C中的const为虚假常量,在局部定义时可以通过指针修改(因为在栈空间)
- C++中的const为真正的常量(在符号表中)
⑦引用
引用是给同一个单元起一个别名,即引用与它所引用的变量共享存储单元
用法:
1.初始化独立引用:
1.1 ”=“的右端是一个变量,可读也可写 【对相同单元操作】
int a;
int &ra=a;
1.2 “=”右端是一个常量
const float &r2=1.0;
1.3 定义常引用
int x=1;
const int&rx=x;
rx=98;//错误,只能使用rx,不能修改 但可以使用非常引用或指针进行修改
2.引用函数参数(参数为引用)
2.1 被调函数参数为常量,不影响结果
void func(int num)
{
num++;
}
int main()
{
int value=5;
func(value);
cout<<value;
return 0;
}
func函数开辟临时num的空间,用完即毁,value结果为5
2.2 被调函数参数为指针,影响结果
void func(int *num)
{
*num++;
}
int main()
{
int value=5;
func(&value);
cout<<value;
return 0;
}
func开辟指针num的临时空间,调用时num指针指向value的空间,在value空间对该值进行+1后,num临时空间摧毁,value结果为6
2.3 被调函数参数为引用,影响结果
void func(int &num)
{
num++;
}
int main()
{
int value=5;
func(value);
cout<<value;
return 0;
}
func不开辟空间,func中的num为value的引用,共用一个单元空间,value结果为6
3.引用调用(函数为引用)
- 函数返回引用,实际返回一个存储单元
- 如果该函数返回引用,则该函数调用可以出现在赋值号左边
int &(int *pint)
{
return *pint;
}
int main()
{
int a=10,b;
b=f(&a)*5;
f(&a)=88;
cout<<b<<" "<<a;
return 0;
}
结果为:50 88 此时返回值是一个存储单元,该存储单元与a相同
int &(int pint)
{
return pint;
}
int main()
{
int a=10,b;
b=f(a)*5;
f(a)=88;
cout<<b<<" "<<a;
return 0;
}
结果为:50 10,此时返回一个存储单元,该存储单元与a不同,而是func隐式自我创建的
本文含有隐藏内容,请 开通VIP 后查看