2021.4.16牛客刷题小结

2021.4.16牛客刷题小结


前言

以下内容为自己学习记录用,仅供参考


C++

1、预处理

1、源文件一行只能有一条预处理命令。
因为预处理命令是#开头的代码行,没有,一条独占一行。

2、常用ASCII码

A——65
Z——90
a——97
z——122
0——48
9——57

3、位运算

右移>>
有符号数右移操作是算术右移操作
最高为根据移动后的最高位(符号为)进行补全。低位移出(舍弃),高位的
空位补符号位,即正数补零,负数补1。
空位补零。
eg:
1000 >> 1 -> 1100
011 >> 1 -> 001

左移<<
将运算数的二进制整体左移指定位数,低位用0补齐,将一个数左移一位扩大2倍。高位移出(舍弃),低位的空位补零。
eg:
0000 0011<<2 -> 0000 1100

按位与 &
相同位的数字只要有0则位0。

按位或 |
相同位的数字只要有1就为1。

按位异或 ^
相同位的数字数值不同则为1,相同则为0
按位异或作用:判断两个字符串是否相同。

4、重写之 协变:

在C++中,只要原来的返回类型是基类类型的指针或引用新的返回值类型是派生类的指针或引用,覆盖的方法就可以改变返回类型,这样的返回类型称为协变返回类型。
新的返回类型只能是基类的派生类(自己与兄弟类

class Father{
public:
  virtual Father* p(){
    cout<<"Father"<<endl;
    return this;
  }
};

class Son1: public Father{
};

class Son: public Father{
public:
  Son* p()
  {
    cout<<"Son"<<endl;
    return this;//return (dynamic_cast<Son1*>(this));
  }
};

int main()
{
    Son son;
    son.p();
    return 0;
}

输出:Son

5、动态/静态联编

静态联编 通过对象名调用虚函数,在编译阶段就能确定调用的是哪一个类的虚函数
动态联编 通过基类指针调用,在编译阶段无法通过语句本身来确定调用哪一个类的虚函数,只有在运行时指向一个对象后,才能确定调用时哪个类的虚函数

6、基类指针

派生类与基类之间的特殊关系之一:基类指针可以在不进行显示类型转换的情况下指向派生类对象
基类引用可以在不进行显示类型转换的情况下引用派生类对象
一个指向基类的指针可以访问从基类派生出来的任何对象

总结

今天没刷几题。

参考:

[1]: 位运算、左移、右移

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值