笔试选择填空总结





重载的定义是:函数名相同,参数列表不同。

简述向上类型转型和向下类型转型
【把握1)转换的安全性;2)转换的绑定时期:一个是动态绑定,一个是静态绑定】
1)子类转为父类:向上类型转型,使用 dynamic_cast<> ,安全的转换
2)父类转为子类:向下类型转型,可以使用 static_cast<> 强制类型转换,这种转换不安全,可能会导致数据的丢失。因为父类的内存可能不包含子类成员的内存








switch(c) 里的 c 必须是整型,不能是 double float 等。

使用取地址操作符,不可以取得指针变量自身的地址。因为指针变量的值也是地址,&p 就是个二级指针,int *q = &p; 二级指针不能赋值给一级指针。这样的考虑也是对的,否则 q 会用 p 的值(某个地址)进行运算,会出问题。

重载后++运算符与重载前++ 运算符区别

//重载前置++运算符
MyInteger& operator++()
{
    m_Num++;
    return *this;
}
//重载后置++运算符
//int代表的是占位参数,可以区分前置和后置递增
MyInteger operator++(int)
{
    //先 记录当时结果
    MyInteger tmp = *this;
    //后 递增
    m_Num++;
    //最后将记录结果做返回
    return tmp;
}

这里重新复习指针的相关概念。

int main() {
    int a[4][10];
    int *p, *q[4];
    p = a;  // 错误,p 是一级指针,a 是二级地址
    q[0] = a[0];
    p = a[0];
    p = &a[2][1];  // 取地址操作,将a[2][1] 这个对象的地址取出来
}
posted @ 2022-08-07 16:20  MasterBean  阅读(4)  评论(0)    收藏  举报