C++ 学习记录2

this 到底是什么

this 实际上是成员函数的一个形参,在调用成员函数时将对象的地址作为实参传递给 this。不过 this 这个形参是隐式的,它并不出现在代码中,而是在编译阶段由编译器默默地将它添加到参数列表中。


static 成员变量必须在类声明的外部初始化,具体形式为:

type class::name = value;

type 是变量的类型,class 是类名,name 是变量名,value 是初始值。将上面的 m_total 初始化:

int Student::m_total = 0;

静态成员变量在初始化时不能再加 static,但必须要有数据类型。被 private、protected、public 修饰的静态成员变量都可以用这种方式初始化。

注意:static 成员变量的内存既不是在声明类时分配,也不是在创建对象时分配,而是在(类外)初始化时分配。反过来说,没有在类外初始化的 static 成员变量不能使用。

注意:static 成员变量不占用对象的内存,而是在所有对象之外开辟内存,即使不创建对象也可以访问。

  1. #include <iostream>
  2. usingnamespace std;
  3. classStudent{
  4. public:
  5. Student(char*name,int age,float score);
  6. void show();
  7. private:
  8. staticint m_total;//静态成员变量
  9. private:
  10. char *m_name;
  11. int m_age;
  12. float m_score;
  13. };
  14. //初始化静态成员变量
  15. int Student::m_total= 0;
  16. Student::Student(char*name,int age,float score):m_name(name),m_age(age),m_score(score){
  17. m_total++; //操作静态成员变量
  18. }
  19. void Student::show(){
  20. cout<<m_name<<"的年龄是"<<m_age<<",成绩是"<<m_score<<"(当前共有"<<m_total<<"名学生)"<<endl;
  21. }
  22. int main(){
  23. //创建匿名对象
  24. (newStudent("小明",15,90))-> show();
  25. (newStudent("李磊",16,80))-> show();
  26. (newStudent("张华",16,99))-> show();
  27. (newStudent("王康",14,60))-> show();
  28. return0;
  29. }

String

 c_str(),该函数能够将 string 字符串转换为C风格的字符串,并返回该字符串的 const 指针(const char*)。

+来拼接字符串时,运算符的两边可以都是 string 字符串,也可以是一个 string 字符串和一个C风格的字符串,还可以是一个 string 字符串和一个字符数组,或者是一个 string 字符串和一个单独的字符。

s3.erase(5,3); 删除

s2= s1.substr(6,6); 提取

int index = s1.find(s2,5); 查找,返回第几位 ,无结果返回很大值。 第二个参数为从第几位开始查找

int index = s1.rfind(s2,6); 查找,返回第几位,无结果返回很大值。第二个参数是最多查找到第几位


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值