当前位置:实例文章 » 其他实例» [文章]鱼皮 C++ 学习路线一条龙!

鱼皮 C++ 学习路线一条龙!

发布人:shili8 发布时间:2025-01-31 02:02 阅读次数:0

**鱼皮 C++ 学习路线一条龙!**

作为一名初学者或是想深入学习C++的朋友,你可能会感到迷惑,不知道从哪里开始。鱼皮将带你一步一步地走完一个完整的C++学习路线,涵盖基础知识、数据结构和算法、面向对象编程等方面。

### 一、基础知识####1. C++基本语法* **变量声明**: `int a;` 或 `int a =10;`
* **运算符**:
* 算术运算符:`+ - * / % << >> == != <= >= < >`
* 赋值运算符:`= += -= *= /= %= <<= >>= &= ^= |=`
* 逻辑运算符:`&& || !`
* 位运算符:`& | ^ ~ << >>`
* **控制结构**:
* 条件语句:`if (条件) {代码}`
* 循环语句:`for (初始化;条件;增量) {代码}` 或 `while (条件) {代码}`
* **函数**:
* 函数声明:`return-type function-name(parameters)`
* 函数调用:`function-name(arguments)`

####2. C++数据类型* **整型**:`int short long`
* **浮点型**:`float double long double`
* **字符型**:`char`
* **布尔型**:`bool`
* **指针型**:`int * p;` 或 `char * str;`

####3. C++运算符重载

cpp#include <iostream>
using namespace std;

class Person {
public:
 string name;
 int age;

 // 构造函数 Person(string n, int a) : name(n), age(a) {}

 // 运算符重载 friend ostream & operator<<(ostream & os, const Person & p) {
 os << "Name: " << p.name << ", Age: " << p.age;
 return os;
 }
};

int main() {
 Person person("John",30);
 cout << person; // Output: Name: John, Age:30 return0;
}


### 二、数据结构####1. 数组
cpp#include <iostream>
using namespace std;

int main() {
 int arr[5] = {1,2,3,4,5};
 for (int i =0; i < 5; i++) {
 cout << arr[i] << " ";
 }
 return0;
}


####2. 链表
cpp#include <iostream>
using namespace std;

class Node {
public:
 int data;
 Node * next;

 // 构造函数 Node(int d) : data(d), next(nullptr) {}
};

int main() {
 Node head(1);
 Node second(2);
 Node third(3);

 head.next = &second;
 second.next = &third;

 Node * temp = &head;
 while (temp != nullptr) {
 cout << temp->data << " ";
 temp = temp->next;
 }
 return0;
}


####3. 栈和队列
cpp#include <iostream>
using namespace std;

class Stack {
private:
 int * arr;
 int top;

public:
 // 构造函数 Stack(int size) : arr(new int[size]), top(-1) {}

 // 入栈 void push(int data) {
 if (top == size -1) {
 cout << "Stack is full!" << endl;
 return;
 }
 arr[++top] = data;
 }

 // 出栈 int pop() {
 if (top == -1) {
 cout << "Stack is empty!" << endl;
 return -1;
 }
 return arr[top--];
 }
};

int main() {
 Stack stack(5);
 stack.push(1);
 stack.push(2);
 stack.push(3);

 while (true) {
 int data = stack.pop();
 if (data == -1) break;
 cout << data << " ";
 }

 return0;
}


### 三、面向对象编程####1. 类和对象
cpp#include <iostream>
using namespace std;

class Person {
private:
 string name;
 int age;

public:
 // 构造函数 Person(string n, int a) : name(n), age(a) {}

 // getter string getName() { return name; }

 // setter void setName(string n) { name = n; }
};

int main() {
 Person person("John",30);
 cout << "Name: " << person.getName() << ", Age: " << person.age << endl;
 person.setName("Jane");
 cout << "Name: " << person.getName() << ", Age: " << person.age << endl;

 return0;
}


####2. 继承
cpp#include <iostream>
using namespace std;

class Animal {
public:
 string name;

 // 构造函数 Animal(string n) : name(n) {}

 void sound() { cout << "The animal makes a sound." << endl; }
};

class Dog : public Animal {
public:
 // 构造函数 Dog(string n) : Animal(n) {}

 void bark() { cout << "The dog barks." << endl; }
};

int main() {
 Dog dog("Max");
 dog.sound(); // Output: The animal makes a sound.
 dog.bark(); // Output: The dog barks.

 return0;
}


####3. 多态
cpp#include <iostream>
using namespace std;

class Shape {
public:
 virtual void draw() =0; // pure virtual function};

class Circle : public Shape {
private:
 int radius;

public:
 // 构造函数 Circle(int r) : radius(r) {}

 void draw() override { cout << "Drawing a circle with radius " << radius << endl; }
};

class Rectangle : public Shape {
private:
 int width;
 int height;

public:
 // 构造函数 Rectangle(int w, int h) : width(w), height(h) {}

 void draw() override { cout << "Drawing a rectangle with width " << width << " and height " << height << endl; }
};

int main() {
 Shape * shape = new Circle(5);
 shape->draw(); // Output: Drawing a circle with radius5 shape = new Rectangle(3,4);
 shape->draw(); // Output: Drawing a rectangle with width3 and height4 return0;
}


### 四、异常处理
cpp#include <iostream>
using namespace std;

class MyException : public exception {
public:
 const char * what() const throw() { return "My custom exception"; }
};

int main() {
 try {
 // code that might throw an exception int x =5 /0;
 } catch (const MyException & e) {
 cout << "Caught my custom exception: " << e.what() << endl;
 }

 return0;
}


### 五、线程
cpp#include <iostream>
using namespace std;

void printHello() {
 for (int i =0; i < 5; i++) {
 cout << "Hello ";
 }
}

void printWorld() {
 for (int i =0; i < 5; i++) {
 cout << "World ";
 }
}

int main() {
 // create threads thread t1(printHello);
 thread t2(printWorld);

 // join threads t1.join();
 t2.join();

 return0;
}


### 六、智能指针
cpp#include <iostream>
using namespace std;

class MySmartPointer {
private:
 int * ptr;

public:
 // 构造函数 MySmartPointer(int value) : ptr(new int(value)) {}

 // getter int getValue() { return *ptr; }

 // setter void setValue(int value) { *ptr = value; }
};

int main() {
 MySmartPointer smartPtr(10);
 cout << "Value: " << smartPtr.getValue() << endl;

 return0;
}


### 七、容器
cpp#include <iostream>
using namespace std;

void printVector(const vector<int> & vec) {
 for (const auto & element : vec) {
 cout << element << " ";
 }
}

int main() {
 // create a vector vector<int> vec = {1,2,3,4,5};

 // print the vector printVector(vec); // Output:12345 return0;
}


### 八、算法
cpp#include <iostream>
using namespace std;

void printSortedArray(const vector

相关标签:c++数据库开发语言
其他信息

其他资源

Top