以下是一些关于C++学习的笔记,涵盖了基础知识、面向对象编程、STL等部分:一、C++基础知识1. C++简介C++是一种静态类型、自由形式的系统编程语言,它继承了C语言的所有特性,并在此基础上增加了面向对象编程、泛型编程等特性。2. C++基本语法- 变

摘要:CPP 学习笔记 秋招的时候(嵌入式方向)面试官常问到 C++,因此花了几天过了一下基础知识,本文为学习笔记。快速学习的经验:如果有其他语言基础的情况下,想要学习一门新语言,让 AI 帮你列一下这个语言的
CPP 学习笔记 秋招的时候(嵌入式方向)面试官常问到 C++,因此花了几天过了一下基础知识,本文为学习笔记。快速学习的经验:如果有其他语言基础的情况下,想要学习一门新语言,让 AI 帮你列一下这个语言的学习大纲或者目录,然后针对目录中的每个知识点让 AI 讲解并给出示例,这样非常快就能学完一门语言,当然这只是个人的速成经验,如果要熟练掌握一门语言还是要脚踏实地的一个个知识点去学习练习。 目录 一、C++ 基本语法 二、面向对象 三、STL容器 四、算法 五、其他 结语 一、C++ 基本语法 如果之前没有接触过面向对象语言的话,在学习 C++ 之前需要先建立一些概念和思想,不然可能连基础 Hello World 程序都会疑惑,比如 std :: cout是什么意思。 在 C 语言中,全局作用域内不允许出现两个同名的函数。C++ 通过引入命名空间和类,巧妙地解决了这个问题。它们就像是给标识符(函数、变量等)加上了“姓氏”或“地址”,从而避免了命名冲突。具体到类的概念:每个类都定义了一个独立的作用域。因此,在不同的类中,完全可以定义名称、参数和返回值都完全相同的成员函数。在调用时,为了明确指出我们想调用的是哪个类中的函数,就需要使用类名来限定,格式通常为 类名::函数名 或通过对象来调用。::表示作用域解析运算符,用于指明空间或者类的作用域。 比如下面的例子,理解思想即可,具体语法接下来慢慢学习。 #include <iostream> // 定义一个 Dog(狗)类 class Dog { public: // Dog 类中的 speak 函数 void speak() { std::cout << "汪汪!" << std::endl; } }; // 定义一个 Cat(猫)类 class Cat { public: // Cat 类中的 speak 函数(与 Dog 类中的函数同名同参数同返回类型) void speak() { std::cout << "喵喵!" << std::endl; } }; int main() { // 创建 Dog 类和 Cat 类的对象 Dog myDog; Cat myCat; // 调用函数时,通过对象来区分所属的类 std::cout << "狗说:"; myDog.speak(); // 调用的是 Dog::speak() std::cout << "猫说:"; myCat.speak(); // 调用的是 Cat::speak() return 0; } 1.1 变量 这里只介绍一下 C++ 风格字符串,因为跟 C 语言有所区别。 其实下面的例子会涉及到很多知识点,大家先有个印象,知道 C++ 字符串怎么定义初始化即可。 #include <iostream> // 基本输入输出头文件,相当于C的stdio #include <string> // 必须包含这个头文件 using namespace std; // 声明了 std 空间了之后,后面的 cout 等都不用再添加 std:: 了 int main() { // 多种初始化方式 string s1; // 默认初始化,空字符串 "" string s2 = "Hello"; // 拷贝初始化 string s3("World"); // 直接初始化 string s4(5, 'A'); // 初始化由5个'A'组成的字符串 "AAAAA" string s5(s2); // 用s2初始化s5,s5内容为 "Hello" cout << "s1: " << s1 << endl; cout << "s2: " << s2 << endl; cout << "s3: " << s3 << endl; cout << "s4: " << s4 << endl; cout << "s5: " << s5 << endl; return 0; } 1.2 命名空间 前面有介绍过。
阅读全文