c++知识点记录

1. 编译器默认生成的函数

(1)构造函数
(2)拷贝构造函数
(3)赋值操作符重载
(4)移动构造函数
(5)移动赋值操作符重载
(6)析构函数

2. 生成规则

构造函数、拷贝构造函数、赋值操作符重载各自算作一类。如果用户实现了带参数的构造函数,则不会再默认生成不带参数的构造函数,但是不会影响编译器继续生成拷贝构造函数和赋值操作符重载

//a.h
#ifndef A_H
#define A_H
class A {
public:
    A(int a);
    //    A &operator=(const A &a)
    //    {
    //        aaa = a.aaa;
    //        return *this;
    //    }
    //    A(const A &a)
    //    {
    //        aaa = a.aaa;
    //    }
private:
    int aaa = 1;
};
#endif  // A_H
//a.cpp
#include "a.h"
A::A(int a)
{
}
//main.cpp
#include "a.h"
int main(int argc, char *argv[])
{
    A a1(1);
    A a3(3);
    a3 = a1; //这个没有定义赋值操作符,仍然可以赋值,说明编译器默认生成了赋值操作符函数
}

3. future和async

#include <iostream>
#include <future>
#include <chrono>

int long_running_task() {
    std::this_thread::sleep_for(std::chrono::seconds(3));
    return 42;
}

int main() {
    std::future<int> result_future = std::async(std::launch::async, long_running_task);

    // 在此处执行其他操作

    int result = result_future.get();
    std::cout << "Result: " << result << std::endl;

    return 0;
}

  • 5
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值