C++
文章平均质量分 77
kendyChina
这个作者很懒,什么都没留下…
展开
-
C++笔记
记录下写得比较好的文章!externC/C++中extern关键字详解面试题C++面试常问问题汇总2017年阿里面试必会20道C++面试题!原创 2022-03-06 22:57:43 · 118 阅读 · 0 评论 -
C++之main之前执行函数
全局变量、全局static变量是在程序加载后,main函数执行之前进行初始化的,借助这一特性,可以实现main之前执行特定函数。#include <iostream>using namespace std;int func1() { cout << "func1()" << endl; return 0;}int i = func1();static int j = func1();int main() { cout <原创 2022-03-06 17:21:12 · 243 阅读 · 0 评论 -
C++之构造、析构函数在继承中的调用关系
继承关系中,构造函数、析构函数的调用顺序:在构造派生类时,调用顺序为:父类构造-子类构造-子类析构-父类析构class Base1 {public: Base1() { cout << "Base1()" << endl; } ~Base1() { cout << "~Base1()" << endl; }};class Derived1 : public Base1 {public: Derived1() { cout原创 2022-03-02 21:54:08 · 1527 阅读 · 0 评论 -
C++之extern
本文会从实践中总结出extern关键字的作用。全局变量extern只是声明了变量,并未定义变量,即没对变量分配内存空间。如下例子,我只编译main.cpp:main.cpp:#include<iostream>using namespace std;extern int i;int main() { ++i; cout << "i: " << i << endl; return 0;}编译:g++ main.原创 2022-03-01 21:35:05 · 2860 阅读 · 0 评论 -
CMake之add_custom_target
本文介绍了CMake中的add_custom_target命令。使用的CMake版本是3.22.1。CMake中一切都是基于target的,如add_library会产生一个library的target,add_executable会产生一个exe的target…本文的add_custom_target会根据命令的参数生成一个target,这个target相对的可以更定制化一点。官方文档:https://cmake.org/cmake/help/v3.22/command/add_custom_tar原创 2022-02-08 22:08:32 · 18024 阅读 · 1 评论 -
CMake之ExternalProject安装boost
这是CMake中用于管理第三方库的命令。本文使用的CMake版本是3.22.1。官方文档:https://cmake.org/cmake/help/v3.22/module/ExternalProject.htmlExternalProject_Add定义一个target,包括以下的步骤:downloadupdate/patchconfigurebuildtestdownload支持指定网上压缩包的url,以及本地的压缩包。...原创 2022-01-24 23:09:55 · 1663 阅读 · 1 评论 -
CMake之add_executable
本文使用CMake版本为3.22.1。add_executable的官方文档:https://cmake.org/cmake/help/v3.22/command/add_executable.html?highlight=add_execuable语法创建名为<name>的target,这个target在make的时候会编译为可执行文件。编译的源文件为[source1] [source2]…。根据平台的不同,编译后的可执行文件名可能为<name>.exe或者。关于编译的产原创 2022-01-23 09:42:53 · 22462 阅读 · 1 评论 -
C++之重载、覆盖、隐藏、虚函数
C++的重载、覆盖、隐藏、虚函数、纯虚函数等概念,都体现于多态的体系中,我会用简单的例子阐述清楚。本文提及的 父类 即 基类,子类 即 派生类。先看demo:#include <stdio.h>class OverLoadClass{ public: void run(int i) {printf("int: %d\n", i);} void run(float i) {printf("float: %f\n", i);}// void run(float j) {pr原创 2020-11-02 21:24:50 · 574 阅读 · 0 评论