结构体 struct
升级1:定义方式不同
升级2:可以保存函数
升级3:可以设置访问权限punlic\private\protected
Public:可以在类内类外访问
Private\protected:只能在类内访问
升级4:可以继承
Class VS struct 区别:
默认访问权限:class默认private struct默认struct
命名:class 类 struct 结构体 class定义称之为对象 struct定义称之为变量
为什么引入类?封装性–(保证代码功能独立(设置访问权限))–提高代码维护性
类编写规范
类内实现的方法,编译器会优化为inline函数
成员方法类外实现
Size:返回字符数
Length
Empty
遍历
Cout<<s1[0]<<end1;//支持数组的访问方式
Cout<<s1.at(0)<<end1//通过at函数访问
//区别:[]不会检查是否越界 at检查:如果越界,产生异常
迭代器:指针类型
迭代器类型:string::iterator
String::iterator;
It = s1.begin();//获取只想第一个字符的迭代器
It = s1.end();//获取指向最后一个字符的下一个空间的迭代器(‘\0’)
插入
S1.insert(2,”jsetc”);
Cout<<”s1 = “<<s1<<end;
String temp = “jsetc”;
String::iterator it;
For(it = s1.begin();it !=s1.end(); it++)
{
If(*it == “e”)
{
Break;
}
}
S1.insert(it,temp.begin(),temp.end());
Cout<<”s1 = “<< s1 <<end1;
删除
替换
查找
比较
//vi插入5个整数,删除里面的奇数,然后输出结果
vectorvs
//vs插入5个字符串,删除字符串中后缀为奇数的字符串,然后输出结果
//“hellol” “hello2”
//将“I am from shanghai 逆序为shanghai from am I"
static_cast:相关类型转换,父类和子类,void*和其他类型指针的转换任何形式的指针可转换成void类型指针,但反正则要进行类型转换
int num=5
double b =static_cast(num)
reinterpret_cast:相当于c语言的强制类型转换,可以将任意指针类型进行转换
/char *ptr = static_cast<char *>(p_num);
//const_cast:将指针或者引用的const属性去除