一,C++简介
什么是C++
C++是一种面向对象语言,即保留了C语言所有优点,有增加了面向对象的机制
C++特点
抽样 封装 继承 多态
二,C++对C语言扩充
1,bool类型
在C语言中使用 ‘0’ 和 ‘1’ 来表示 ‘假’ ‘真’,而在C++中提供了数据类型来表示真与假,它有两个取值true和false 例如:
bool b;
b = 3 ==3;
bool类型可以用来做判断条件,并且指针可以隐式转换为bool类型,空指针转换为false,非空指针转换为true
2,string类型
在C语言中是没有字符串这种数据类型的,是使用字符数组来代替,string 是标准库的一个类,但也可以把它当成一种数据类型来使用。 几种定义方式
string s1;
s1 = "how are you";
string s2 = "i'm fine";
string s3("yes");
string s4(6,'a');
可以使用[ ]来访问操作字符串中的字符
直接使用 “+” 运算符将两个字符串连接起来
#include <iostream>
#include <string>
using namespace std;
int main()
{
string a(6,'a');
string b(6,'b');
cout<<a<<endl;
cout<<a+b<<endl;
return 0;
}
可以直接使用 “<” “>” “!=”来判断字符串长度大小
#include <iostream>
#include <string>
using namespace std;
int main()
{
string a(6,'a');
string b(7,'b');
cout<<a<<endl;
cout<<a+b<<endl;
if(a<b)
{
cout<<"a longer than b"<<endl;
}
return 0;
}
使用length()和size()函数来计算字符串长度
#include <iostream>
#include <string>
using namespace std;
int main()
{
string a(6,'a');
string b(7,'b');
cout<<a.length()<<endl;
cout<<b.size()<<endl;
return 0;
}
使用swap函数交换字符串的值,它只适用于string类型的字符串,不适用于C语言 其原型为void swap(string &s);
#include <iostream>
#include <string>
using namespace std;
int main()
{
string a(6,'a');
string b(7,'b');
b.swap(a);
cout<<a<<endl;
return 0;
}
3,new与delete运算符
在C语言中我们使用malloc动态分配内存,使用free释放内存,但在C++中无法满足动态对象的需求,因此C++引入new和delete关键字来申请与释放空间
char *p1 = new char[]();
int *p2 = new int[10](10);
delete 指针名;
delete []指针名;
4,内联函数
inline 返回值类型 函数名(参数列表)
{
函数体;
}
调用内联函数时不会跳转到函数地址,而是将函数整体插入到调用位置 这种方法适用于结构简单语句少的函数,并且inline只是建议编译器将函数嵌入到调用处,编译器会根据函数的长度与复杂度自行判断
5,重载函数
重载函数就是在同一个作用域内函数名相同但形参列表不同 例如
#include <iostream>
#include <string>
using namespace std;
void add(int x,int y)
{
cout<<"add1"<<x+y<<endl;
}
void add(int x,int y,int z)
{
cout<<"add2"<<x+y+z<<endl;
}
int main()
{
add(1,2);
add(1,2,3);
}
|