面向对象编程的三大基本思想 --》类的封装 继承和派生 多态及c++中的字符串类

函数带默认参数

  1. C++特有的语法点
    C++允许函数的形参带默认参数
    2.特点
    第一:默认参数在传递实参的时候,必须从左到右连续默认
    第二:写默认参数的时候,必须从右往左连续默认
    练习:
    请问如下写法是否正确
    int add(int a=99,int b,int c=8); //语法错误,b断开了,没有默认
    int add(int a=99,int b=77,int c=8);
    int add(int a=99,int b,int c); //错误
    int add(int a,int b,int c=8); //正确
    int add(int a,int b=77,int c=8); //正确
    int add(int a=88,int b,int c=8); //错误
    3.跟函数重载的关系
    注意:函数带默认参数,使用的时候参数的传递是很灵活,可能导致函数调用有冲突

C++的行业标准

  1. C++从诞生开始一直都有更新新的语法规则
    C++98 C++03 C++11 C++17
    C++也是与时俱进的,语法规则都有更新
  2. 使用指定标准的C++
    g++ 类的练习.cpp -std=c++11 //我要使用C++11标准中的语法规则去编译我C++程序

面向对象编程的三大基本思想 --》类的封装 继承和派生 多态

类的封装
    1. 类和对象
             类:     生活中也有分类的思想
                                        人:   行为:  劳动   思考  吃  跑  睡觉
                                                  属性:  五官   皮肤颜色   国籍    身高  体重
                                        动物:行为: 吃肉  吃草
                                                   属性: 毛发颜色   脚   
                         C++为了描述生活中的数据,引入了分类思想 
                                   class  类的名字
                                   {
                                             行为--》成员函数/成员方法来描述
                                             属性--》成员变量
                                  };  
                         int  a;
                         struct  student  stu;
                         Animal  b;  //Animal类型的变量(对象),变量(对象)名字叫做b
             对象: 类的一个实例
                        程序员定义了一个类,相当于"发明了一种新的数据类型"
                        定义类的对象,相当于我们平时定义变量,道理是一样的
  1. 类的封装
    类的封装:程序员自定义一个类
    类的成员
    分成两种:成员方法和成员属性
    类的使用
    一般习惯把类名的首字符大写
    规则: 类名 对象名;
    比如: Animal a; //定义了Animal的一个对象,名字叫做a
    对象调用类的成员
  2. 类的成员权限
    目的:C++给成员设置权限目的是为了保护这些数据
    C++规定类中成员有三种权限: public(公有) private(私有) protected(保护)
    public: 类的成员可以直接通过对象来调用,可以在类的外部使用
    private:不可以直接通过对象来调用,只能在类的内部使用
    protected:暂时不用理会
    默认情况下,如果你定义类,什么权限修饰词都不使用,所有成员都是私有的
  3. 类和结构体的区别和联系
    联系:
    定义类的时候 class 类名 或者 struct 类名(一般不建议你使用struct定义类)
    普通对象.成员
    对象指针->成员
    区别一:类中可以定义函数,结构体不可以(结构体只能存放函数指针)
    区别二:类中有权限修饰词,结构体没有
    5.类的成员函数的两种写法
    写法一:把成员方法的定义写在类的里面
    写法二:把成员方法的定义写在类的外面
    6.类的大小
    类的大小跟成员属性有关,跟成员方法无关,也要满足字节对齐
    类的成员方法存放在内存的方法区里面,跟成员变量存放的位置不一样
    空类的大小:

7.重新认识cout和cin
cout是ostream的一个对象
cin是istream的一个对象
namespace std
{
ostream cout;
istream cin;
}
C++在线API文档 www.cplusplus.com
8.this指针
this指针是指向当前对象的一个指针,哪个对象调用方法,该指针就指向哪个对象

C++中的字符串类(重点,重点,重点)

  1. C语言表示字符串:
    char *
    char []
    C++表示字符串
    char * --》分配堆空间,方法也得自己写
    char [] --》长度受到限制,担心数组越界,
    class string --》好处,字符串长度不受限制,提供了大量操作字符串的方法,直接调用,省心

练习:
1. 定义矩形类,里面有求面积,求周长的成员方法
2. ostream
istream
good --》判断文件读写是否成功,判断键盘输入的数据是否符合要求
eof --》判断文件是否读完
fail --》判断文件读写是否成功,判断键盘输入的数据是否符合要求
setf --》设置输入输出的格式(进制,浮点数的精度)
unsetf --》取消输入输出的格式的设置

作业:
1. 不可以使用任何C语言的库函数,只能使用string中的方法,实现
只要B字符串中出现的字符(不论大小写),把它从A字符串中剔除
比如: A字符串是 “fhdshffFHDSHF”
B字符串是 “hfdhfd”
2. 封装一个字符串类。该类中有如下成员方法(公有的):
可以把字符串中小写字符转成大写 a(97)–> A(65) ASCII码值相差32
可以逆序存放字符串 首尾交换
剔除字符串中非英文字符
class mystring
{

   };
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值