C++ bool、string、增强的范围for、函数参数默认值、函数重载

本文介绍了C++中的布尔类型、字符串操作(包括字符串比较、拼接、截取和长度)、增强的范围for循环,以及函数参数的默认值和函数重载的概念和用法。
摘要由CSDN通过智能技术生成

目录

bool

string 

增强的范围for

函数参数默认值

函数重载


bool

C++关键字用于描述 布尔类型

bool temp = true;
temp = false

输出时以 1:true 0:false 


string 

C++ 字符串类型

头文件 #include <string>

string str;
str = "qwer";
cout << str << endl;
str[1] = 'W';
cout << str << endl;

字符串比较  : 通过 == 、!= 、> 、<判断

string strnew = "qWer";
if (strnew == str)
{
	cout << "strnew == str" << endl;
}
else
{
	cout << "strnew != str" << endl;
}

字符串拼接  : 通过 + 、+= 进行拼接

string strneww = strnew + str + p + strarr;
cout << strneww << endl;   //qWerqWerqwer1234

字符串截取  : substr(开始下标,截取长度)  

开始下标超限则报错   截取长度超限仅截取有效长度

cout << strneww.substr(4, 10) << endl;;  //qWerqwer12
cout << strneww.substr(4, 100) << endl;  //qWerqwer1234

字符串长度

cout << strneww.size() << "  " << strneww.length() << endl; //16  16

c_str() : string 转换为 const char* 

cout << strcmp(strneww.c_str(), strarr) << endl;


增强的范围for

遍历int数组

int arr[10] = { 1,2,3,4,5,6,7,8,9,0 };
for (int v : arr)
{
	cout << v << "  ";
}
cout << endl;

遍历string

string str = "1234567890";
for (char v : str)
{
	cout << v<<"  ";
}
cout << endl;

不可遍历new的 数组  (未知数组大小)


函数参数默认值

传递实参则默认值失效     

未传递实参则使用默认值

单个参数

void fun1(int a=10)
{
	cout << a << endl;
}

fun1(); //fun1  10   
fun1(20);  //fun1  20

多个参数

多参数指定默认值规则:从右向左依次指定,中间不可间断

void fun2(int a, int b=20, int c=30)
{
	cout << a << "  " << b << "  " << c << "  " << endl;
}

fun2(100); //100  20  30
fun2(100, 200);  //100  200  30
fun2(100, 200, 300); //100  200  300

只在声明处指定默认值

void fun3(int a = 10);

void fun3(int a)
{
	cout << a << endl;
}

fun3();  //10

只在定义处指定默认值

void fun4(int a);

void fun4(int a = 20)
{
	cout << a << endl;
}

fun4();  //error C2660: “fun4”: 函数不接受 0 个参数

在同一作用域下:声明和定义处皆指定默认值

void fun5(int a = 30);

void fun5(int a = 30)
{
	cout << a << endl;
}

fun5();  //error C2572: “fun5”: 重定义默认参数 : 参数 1

多次声明指定默认值,以局部为准

void fun6(int a = 40);

void fun6(int a)
{
	cout << a << endl;
}

fun6();  //40
void fun6(int a = 50);
fun6();  //50


函数重载

在同一作用域下,函数名相同,参数列表不同(参数类型,数量),返回类型是否相同不做要求

描述多个函数之间的关系

int add(int a, int b)
{
	return a + b;
}
double add(double a, double b)
{
	return a + b;
}
int add(int a, int b, int c)
{
	return a + b + c;
}
int main()
{
	cout << add(10, 20) << endl;  //30
	cout << add(10.5, 20.5) << endl;  //31
	cout << add(10, 20, 30) << endl;  //60

	return 0;
}

函数重载

void fun1() { cout << "fun1()" << endl; }
void fun1(int a = 0) { cout << "fun1(int a)" << endl; }

fun1(10);
void fun1();
fun1();
{
	void fun1(int a = 0);
	fun1();
}

非函数重载

非函数重载:error C2084: 函数“void fun2(int)”已有主体
void fun2(int a) { cout << "fun2(int a)" << endl; }
void fun2(const int a) { cout << "fun2(const int a)" << endl; }

函数重载

void fun2(int* a) { cout << "fun2(int* a)" << endl; }
void fun2(const int* a) { cout << "fun2(const int* a" << endl; }

非函数重载

非函数重载,重定义:error C2084: 函数“void fun3(int [])”已有主体
void fun3(int arr[]) { cout << "fun3(int arr[]" << endl; }
void fun3(int* arr) { cout << "fun3(int arr[]" << endl; }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

摆烂的李某人O.o

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值