前言

玛卡巴卡,这个C++有很多一部分的内容是基于C语言的,先把C语言炒热先吧,这个也就输入和输出是不太一样的格式,其他的都是很像的写法,看看就明白了,喵~

与C语言相似的点的复习

 #include <iostream>
 using namespace std; //告诉编译器使用 std 命名空间。命名空间是 C++ 中一个相对新的概念。
 ​
 int add(int a, int b) {
     return a + b;
 }
 ​
 class Person {
 public:
     string name;
     int age;
     void say() {
         cout << "My name is " << name << ", I'm " << age << " years old." << endl;
     }
 };
 ​
 int main() {
     //1.基本的输入输出
     int a2;
     cin >> a2; //从控制台输入一个整数,并将其赋值给变量 a2。
     cout << a2 << endl; //将变量 a2 的值输出到控制台。
 ​
     cout << "Hello, World!" << endl;
     std::cout << "Hello, World!" << std::endl;
     
     /* 区别:
      * cout << "Hello, World!" << endl;:这行代码使用了 using namespace std; 这个声明,所以可以直接使用 std 命名空间中的 cout 和 endl。
      * std::cout << "Hello, World!" << std::endl;:这行代码没有使用 using namespace std; 这个声明,而是在每次使用 std 命名空间中的元素时都显式地添加了 std:: 前缀。
      * 也就是说,如果不使用 using namespace std; 这个声明,那么在使用 cout 和 endl 时就必须在前面加上 std:: 前缀。
      */
     
     //2.typedef 声明
     typedef int zhengxing; //typedef 关键字,用于为数据类型取一个新的名字。
     zhengxing a = 10;
     cout << a << endl;
 ​
     /* 此处的输出应该是 10,因为 zhengxing 是 int 的别名,所以 zhengxing a = 10; 就相当于 int a = 10;。
      * typedef 语句的一般形式是:typedef type newname;,其中 type 是现有的数据类型,newname 是新的数据类型名。
      */
 ​
 ​
     //3.枚举类型
     enum color { red, green, blue } c;
     c = blue;
     cout << c << endl;
 ​
     /* 此处的输出应该是 2,因为枚举类型的值是从 0 开始的,所以 red 是 0,green 是 1,blue 是 2。
      * 枚举类型是一种用户自定义的数据类型,用于定义变量,以表示程序中只能赋予某些离散整数值的变量。
      * 枚举类型的一般形式是:enum enum-name { list of names } var-list;,其中 enum-name 是枚举类型的名称,list of names 是枚举类型的值,var-list 是一个或多个枚举变量。
      */
 ​
     //4.类型转换
     int i = 10;
     double d = 3.14;
     cout << (double)i << endl;
     cout << (int)d << endl;
 ​
     /* 此处的输出应该是 10 和 3,因为 (double)i 将整数 i 转换为浮点数,(int)d 将浮点数 d 转换为整数。
      * 类型转换是将一个数据类型的值转换为另一个数据类型的值,C++ 中有四种类型转换方式:
      * 1. static_cast<type>(expression):用于基本数据类型之间的转换,如 int 转 double,double 转 int。
      * 2. dynamic_cast<type>(expression):用于将基类指针转换为派生类指针。
      * 3. const_cast<type>(expression):用于去除表达式的 const 属性。
      * 4. reinterpret_cast<type>(expression):用于将一个指针转换为另一个类型的指针。
      */
 ​
     //4.1 静态转换
     int a1 = 10;
     double b1 = static_cast<double>(a1);
     cout << b1 << endl;
 ​
     //4.2 动态转换
     class Base {
     public:
         virtual void print() {
             cout << "Base" << endl;
         }
 ​
     };
 ​
     class Derived : public Base {
     public:
         void print() {
             cout << "Derived" << endl;
         }
     };
     Base *b = new Derived();
     Derived *d1 = dynamic_cast<Derived *>(b);
     d1->print();
 ​
     //4.3 常量转换
     const int b2 = 10;
     int& r = const_cast<int&>(b2); // 常量转换,将const int转换为int
     cout << r << endl;
 ​
     //4.4 重新解释转换
     int a3 = 10;
     int *p = &a3;
     double *dp = reinterpret_cast<double *>(p); // 重新解释转换,将int指针转换为double指针
     cout << *dp << endl;
 ​
     //5.define
     #define PI 3.14159
     cout << PI*2*2 << endl;
 ​
     //6.const
     const int a4 = 10;
     //a4 = 20; //这里会报错,因为 a4 是一个常量,不能被修改。
     cout << a4 << endl;
 ​
     //7.引用
     int a5 = 10;
     int &b5 = a5;
     b5 = 20;
     cout << a5 << endl;
 ​
     //8.指针
     int a6 = 10;
     int *p1 = &a6;
     cout << *p1 << endl;
 ​
     //9.循环
     for (int i = 0; i < 10; i++) {
         cout << i << endl;
     }
 ​
     //10.判断
     int a7 = 10;
     if (a7 > 5) {
         cout << "a7 > 5" << endl;
     } else {
         cout << "a7 <= 5" << endl;
     }
 ​
     //11.运算符
     int a8 = 10;
     int b8 = 20;
     cout << a8 + b8 << endl;
     cout << a8 - b8 << endl;
     cout << a8 * b8 << endl;
     cout << a8 / b8 << endl;
     cout << a8 % b8 << endl;
 ​
     //12.数组
     int arr[5] = {1, 2, 3, 4, 5};
     for (int i = 0; i < 5; i++) {
         cout << arr[i] << endl;
     }
 ​
     //13.函数
     //这里的函数在main外面,这里就在这个main的开头,如果在main的后面,就需要在main的前面声明一下。
     cout << add(1, 2) << endl;
 ​
     //14.结构体
     struct Student {
         string name;
         int age;
     };
     Student s;
     s.name = "Tom";
     s.age = 18;
     cout << s.name << " " << s.age << endl;
 ​
     //15.类
     //这里的类在main外面,这里就在这个main的开头。
     Person person;
     person.name = "Tom";
     person.age = 18;
     person.say();
     
     return 0;//终止 main( )函数,并向调用进程返回值 0。
 }