原来 C++ 这么简单:每日十题轻松学(基础篇 Day 1)


📘 本系列面向 C++ 学习者,每天 10 个精选问题,结合通俗讲解、口诀总结,逐步夯实语法基础,适合新手入门与有经验者温故知新。每天十题,不仅易学易记,还能提升你的系统理解力!


在这里插入图片描述

🔹Day 1:引用、指针、构造函数……C++ 必知基础十问


✅ 1. 引用和指针有什么区别?

比较项引用(Reference)指针(Pointer)
语法int &ref = a;int *ptr = &a;
可为 null 吗
可更改目标吗可以

通俗理解:
引用就是给变量取了另一个名字,不能更换对象;而指针是保存地址的变量,可以指向不同的对象。

记忆口诀:

引用是别名,不可换人名;指针是地址,指东也指西。


✅ 2. const 到底修饰谁?

const int *p;      // 指向常量的指针(内容不能改,指针能变)
int *const p;      // 常指针(指针不能改,内容可变)
const int *const p; // 两者都不能改

口诀记忆:

const 在 * 左,值不能动;const 在 * 右,指针不能动。


✅ 3. 函数重载和函数覆盖的区别?

项目函数重载(Overload)函数覆盖(Override)
场景同一类中子类对父类的虚函数
条件函数名相同,参数不同函数名和参数都相同
是否需 virtual

通俗总结:

重载是同名不同参;覆盖是子类改父类的虚函数行为。


✅ 4. 构造函数和析构函数的作用?

  • 构造函数:创建对象时自动调用,用于初始化成员变量。
  • 析构函数:对象销毁时自动调用,用于释放资源。

特点:

  • 构造函数可以重载;
  • 析构函数不能重载;
  • 析构函数常加 virtual 以支持多态释放。

记忆口诀:

构造是入口,析构管善后;资源谁申请,谁来负责收。


✅ 5. 值传递、引用传递、指针传递有何不同?

类型特点优点缺点
值传递拷贝一份副本安全效率低
引用传递不拷贝,操作原对象高效原对象可能被改动
指针传递传地址,能修改原对象灵活需检查是否为 null

通俗理解:

  • 值传递像复印件;
  • 引用传递像帮人改原件;
  • 指针传递像拿到地址去操作原件。

✅ 6. 默认构造函数与拷贝构造函数的作用?

class A {
public:
    A();               // 默认构造
    A(const A &other); // 拷贝构造
};
  • 默认构造函数:无参数的构造函数。
  • 拷贝构造函数:用一个已有对象构造新对象。

口诀记忆:

默认构造“无配置”,拷贝构造“复制体”。


✅ 7. 成员变量如何初始化?

三种方式:

  1. 构造函数体赋值:
    A() { x = 10; }
    
  2. 构造函数初始化列表(推荐):
    A() : x(10) {}
    
  3. C++11 起支持类内初始化:
    int x = 10;
    

说明:
const 成员或引用成员必须用初始化列表。


✅ 8. 什么是 this 指针?

  • this 是类成员函数中的隐含指针,指向调用该函数的当前对象。
  • 常用于解决成员变量与参数同名的歧义:
void setX(int x) {
    this->x = x;
}

口诀记忆:

this 指向我自己,避免变量冲突起。


✅ 9. 静态成员变量与静态成员函数的区别?

class A {
    static int count;
public:
    static void showCount();
};
  • 静态变量:属于类,共享数据;
  • 静态函数:不依赖对象,不能访问非静态成员。

记忆口诀:

静态归类不归人,访问方式需记清。


✅ 10. 什么是内联函数?

inline int add(int a, int b) {
    return a + b;
}
  • 编译器会将函数代码直接插入调用处,减少函数调用开销;
  • 适用于短小、频繁调用的函数。

注意:
不宜对复杂函数使用内联,否则可能导致代码膨胀。

记法:

内联小函数,效率大提升。


📚 总结口诀(建议收藏)

引用是别名,指针能变名;
const 修饰谁,看它在谁前;
重载靠参数,覆盖靠 virtual;
构造来初始化,析构管回收;
值传安全慢,引用快速险;
默认构造空参数,拷贝复制老对象;
成员初始看列表,const 必须用它;
this 指我自己,变量冲突需它理;
静态变量类共有,函数无对象也能走;
内联轻快别太大,小巧函数刚刚好。

🚀 小结 & 明日预告

今天我们通过 10 个基础问题了解了 C++ 中最核心的概念,明天我们将进入:

Day 2:运算符重载、继承、多态专题

敬请期待!你可以点赞、收藏或留言,支持这个系列继续更新 ❤️
也欢迎将本系列推荐给需要打基础的朋友,一起进步!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值