c++知识点2

C++ 是一门功能强大且广泛应用的编程语言,下面为你介绍一些 C++ 里的重要知识点。

基础语法

  • 变量和数据类型:C++ 有多种数据类型,像int(整数)、float(单精度浮点数)、double(双精度浮点数)、char(字符)、bool(布尔值)等。例如:

cpp

int age = 25;
float height = 1.75;
char grade = 'A';
bool isStudent = true;

  • 控制结构:包括if-else(条件判断)、for(循环)、while(循环)、do-while(循环)等。比如:

cpp

// if-else示例
if (age >= 18) {
    std::cout << "成年人" << std::endl;
} else {
    std::cout << "未成年人" << std::endl;
}

// for循环示例
for (int i = 0; i < 5; i++) {
    std::cout << i << std::endl;
}

  • 函数:函数是完成特定任务的代码块,能提高代码的复用性。示例如下:

cpp

int add(int a, int b) {
    return a + b;
}

int result = add(3, 5);

面向对象编程

  • 类和对象:类是对象的抽象,对象是类的实例。例如定义一个Person类:

cpp

class Person {
private:
    std::string name;
    int age;
public:
    Person(std::string n, int a) : name(n), age(a) {}
    void introduce() {
        std::cout << "我叫" << name << ",今年" << age << "岁。" << std::endl;
    }
};

Person p("张三", 20);
p.introduce();

  • 继承:一个类能够继承另一个类的属性和方法,从而实现代码复用和扩展。例如:

cpp

class Student : public Person {
private:
    std::string school;
public:
    Student(std::string n, int a, std::string s) : Person(n, a), school(s) {}
    void study() {
        std::cout << "我在" << school << "学习。" << std::endl;
    }
};

  • 多态:多态允许不同类的对象对同一消息做出不同响应。多态通过虚函数和继承来实现。示例如下:

cpp

class Shape {
public:
    virtual void draw() {
        std::cout << "绘制图形" << std::endl;
    }
};

class Circle : public Shape {
public:
    void draw() override {
        std::cout << "绘制圆形" << std::endl;
    }
};

Shape* shape = new Circle();
shape->draw();

内存管理

  • 栈和堆:栈内存由系统自动管理,而堆内存需要手动分配和释放。使用new操作符在堆上分配内存,使用delete操作符释放内存。示例如下:

cpp

int* ptr = new int(10);
delete ptr;

  • 智能指针:C++11 引入了智能指针,如std::unique_ptrstd::shared_ptrstd::weak_ptr,它们能自动管理内存,避免内存泄漏。示例如下:

cpp

#include <memory>
std::unique_ptr<int> uptr = std::make_unique<int>(20);

模板

  • 函数模板:函数模板可创建通用函数,能处理不同类型的数据。示例如下:

cpp

template <typename T>
T max(T a, T b) {
    return (a > b) ? a : b;
}

int maxInt = max(3, 5);
double maxDouble = max(3.2, 5.7);

  • 类模板:类模板可创建通用类,同样能处理不同类型的数据。示例如下:

cpp

template <typename T>
class Stack {
private:
    T* data;
    int top;
    int capacity;
public:
    Stack(int size) : capacity(size), top(-1) {
        data = new T[capacity];
    }
    ~Stack() {
        delete[] data;
    }
    void push(T value) {
        data[++top] = value;
    }
    T pop() {
        return data[top--];
    }
};

Stack<int> intStack(10);
intStack.push(10);

标准模板库(STL)

  • 容器:STL 提供了多种容器,如vector(动态数组)、list(双向链表)、map(键值对映射)等。示例如下:

cpp

#include <vector>
std::vector<int> vec = {1, 2, 3, 4, 5};
for (int num : vec) {
    std::cout << num << " ";
}

  • 算法:STL 提供了很多算法,如sort(排序)、find(查找)等。示例如下:

cpp

#include <algorithm>
std::sort(vec.begin(), vec.end());

这些都是 C++ 的核心知识点,掌握它们有助于你更好地运用 C++ 进行编程。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值