C++ 编写类文件的时候,需要注意的问题

Windows下用VScode编写C++程序如何添加并应用自定义头文件 Windows下用VScode编写C++程序如何添加并应用自定义头文件 关键词:Windows,CPP,VScode,自定义头文件 一个编程小白,正在试着用vscode学CPP,标准库应用没有问题,但自定义的头文件和自定义头文件中声明的函数用不了。刚刚被这个问题整个半死,花了一晚上终于解决了。 整体如下 main函数引用了一个include文件夹中自定义的.h文件,并在lib文件夹里有相应.cp... 阅读详情

原博文链接在我的官方网站,网址是:http://www.aobosir.com/blog/2017/02/07/cpp-cmake-aux_source_directory/


一段时间不编写程序了,基本上都忘记了。今天我来介绍一下:当我们编写类文件的时候,需要注意的问题:


比如,我现在写了pairAlgin.hpp文件 和 pairAlgin.cpp文件。

我在pairAlign.hpp文件里面

class PairAlign{
public:
    PairAlign();
};

你会发现:这个文件的名字和里面的类的名字不同。一个是pairAlign的文件名,一个是PairAlign类。这是没有关系的。这个随便。


但是,我在使用make命令编译程序的时候,上面没有错误的程序竟然编译不了。

后来,我们知道了问题。其实是我们的CMakeLists.txt文件里面的问题。因为 pairAlgin.hpp文件 和 pairAlgin.cpp文件是放在pairAlgin文件夹里面的。而我却没有将这个文件夹添加的被编译的SRC_LIST变量里面。

我们需要在CMakeLists.txt文件里面的aux_source_directory(. SRC_LIST)下面添加下面这个代码,就可以解决问题:

aux_source_directory(./pairAlign/ SRC_LIST)

现在我们在重新执行:

cmake ..
make

就可以编译成功了。
更多精彩的博文,请访问:http://www.aobosir.com/

【log4】c++日志工具之——log4cpp 1、log4cpp概述 Log4cpp是一个开源的C++类库,它提供了C++程序中使用日志和跟踪调试的功能,它的优点如下: 提供应用程序运行上下文,方便跟踪调试; 可扩展的、多种方式记录日志,包括命令行、文件、回卷文件、内存、syslog服务器、Win事件日志等; 可以动态控制日志记录级别,在效率和功能中进行调整; 所有配置可以通过配置文件进行动态调整; 多语言支持,包括Java(log4j),C++(log4cpp、log4cplus),C(log4c),python(... 阅读详情

相关推荐

MATLAB调用CPP代码

1.环境要求 电脑上同时安装VS及Matlab(本人是Matlab2015b 与VS2015) 2.配置方法 在Matlab命令行窗口中输入:mex -setup 并回车 选择第一个选项,完成VS2015的配置 3.编写cpp文件 在VS中编写CPP文件 #include “mex.h” double add(double x, double y) { return x + y; } //设置...

qq_26126831的博客 6344

c++ 定义文件类

满足main和测试需求。

Ct314的博客 549

c++ 利用yaml-cpp读写yaml配置文件

在程序员的开发生涯中,读写配置文件必不可少。 配置文件有利于我们灵活配置工程,解决大量重复劳动,也方便调试。 配置文件的格式有很多,最简单的有一行一行的文本,也有像 json、xml、protocol buffer 这样结构化的格式,当然也有 yaml 这种格式。 今天的博文介绍的是如何在 C++ 开发中利用 yaml-cpp 开源库读写 yaml 配置文件。 如果有 Python 开发经验的同学,可能知道用 Python 读取 yaml 是再简单不过了,但是 C++ 麻烦一点,它需要你自己下载源码然后编译

newbeixue的博客 4016

类的使用注意事项

整篇以这个学生类为例。 class Student { public: Student() {}//默认构造函数形式 ~Student() {}//默认析构函数形式 string GetName() { return name; } int GetAge() { return age; } float GetScore(); private: string name; int age; float score; }; float Student::GetScore()//

yi_chengyu的博客 460

C++去除cpp文件的注释

问题:读取一个cpp文件,去除其中所有的单行注释(//)和多行注释(/**/),将去除注释后的内容写入一个新文件。 注意: 不能去除字符串中的任何字符,如 "asdf//gh/**/k" 需要原样输出 能够识别转义的双引号(\")和非转义的双引号("),如: '\"'(单引号中的转义双引号字符) "asdf\"" (字符串中的转义双引号不能表示字符串结束) \"aaa"bcdef"(同理,转义双引号不能表示字符串开始) 命令行参数为: 参数1:原文件名 参数2:新文件名 ...

m0_62505136的博客 2706

【C++】简单的多个cpp组合程序

//目的:对多个cpp组成大程序的理解 hello.h文件#ifndef HELLO_HPP #define HELLO_HPP //构造类成员函数 class Hello { public: void show() const; }; #endif hello.cpp文件 #include "hello.h" #include using std::cout; using

lafay626的博客 9542

CMake4-指令7:aux_source_directory【自动查找所有“源码文件”放入变量中】、file【自动查找所有“头文件”放入变量中】【添加头文件和源码文件后不用修改cmake代码】

​aux_source_directory 查找在某个路径下的所有源文件​搜集所有在指定路径下的源文件的文件名,并将输出结果列表储存在指定的变量中。

u013250861的博客 1087

f2cpp-开源项目:将Fortran代码转换为C++的Python工具

f2cpp是一个将Fortran 77代码转换为C++代码的工具。它的出现是为了帮助那些仍然在使用Fortran 77进行科学计算的开发者和研究人员。通过这个工具,他们可以将Fortran 77代码转换为C++代码,从而在新的计算环境中运行。开源软件(Open Source Software)是指源代码公开的软件,其开发过程和最终成果都可以被任何人查看、修改和分发。这种模式起源于1998年,以促进软件创新和质量提升为目的。开源社区通常会围绕这些项目形成,社区成员自愿参与项目的开发和维护工作。

weixin_42181686的博客 1922

Cmake--aux_source_directory

aux_source_directory 查找在某个路径下的所有源文件。aux_source_directory(< dir > < variable >)  搜集所有在指定路径下的源文件的文件名,将输出结果列表储存在指定的变量中。该命令主要用在那些使用显式模板实例化的工程上。模板实例化文件可以存储在Templates子目录下,然后可以使用这条命令自动收集起来;这样可以避免手工罗列所有的实例。

Bryan要加油 3万+

C++文件操作 注意事项

文件六的具体用法·······················································

[终于解决]Ubuntu14.04 32位安装移动网卡(0bda:b711)驱动8188gu tplink-WN726n

大致梳理一下问题解决的流程 首先,在台式机做了双系统,台式机只有一个网线接口,由于项目要求,需要占用网口传输数据,所以用之前买的tplink-WN726n免驱版2.0的移动网卡 【note】免驱版只能在Windows下安装使用,在Ubuntu系统中无法使用,所以,需要另辟蹊径。 找了很多资料,尝试很多方法,有的复杂有的简单,终于解决。 【思路】首先在Ubuntu系统中输入lsusb,查看是否检测到USB网卡设备。然后从Github中复制代码,构建,安装,然后modprobe一下,到前面那步还不行,就再来一步

瑞o 1万+

C++文件操作需要注意的事项(C++文件相关)

static声明的函数放在main函数里时只有当main函数执行结束时才会调用static函数析构 文件open默认会在析构的时候close 以下情况写入文件会造成文件信息丢失,因为fstream也是基于缓存的,m_f<<info并不一定真正写入到文件里去会造成只记录第一条日志后面日志丢失,调用flush()函数写入文件但会只记录最后一条日志 将static Log log(1,“...

昔拉的博客 520

告别‘Duang’的一声:手把手解决RK3588开发板PCIe初始化卡死问题(DTS修改实战)

本文详细介绍了解决RK3588开发板PCIe初始化卡死问题的完整过程,包括问题诊断、DTS文件修改及编译烧写步骤。通过禁用未使用的PCIe硬件资源,有效解决了启动卡死问题,为嵌入式开发者提供了实用的调试方法和经验总结。

weixin_30753873的博客 214

C++压缩与解压缩工具库

C++压缩与解压缩工具库 去发现同类优质开源项目:https://gitcode.com/ 简介 本仓库包含了使用C++编写的一个压缩和解压缩文件的工具库,适用于需要处理.zip和.unzip文件格式的项目。库中包括必要的头文件和类文件,以及使用示例demo,方便开发者快速集成到自己的项目中。 功能 支持文件的压缩(zip) 支持文件的解压缩(unzip) 使用说明 将仓库中的头文件和类文件引...

gitblog_06711的博客 402

066、AR 应用中虚拟物体漂移抖动?IMU 融合 + 光流追踪的视觉里程计优化方案

AR应用中虚拟物体漂移抖动优化方案 摘要:针对AR应用中虚拟物体漂移抖动问题,提出一种IMU融合与光流追踪的视觉里程计优化方案。关键点包括:1) 采用IMU预积分技术处理高频噪声,通过中值积分计算帧间相对运动约束;2) 使用金字塔LK光流追踪像素运动,通过中值偏差法剔除异常值;3) 构建10帧滑动窗口的紧耦合优化框架,将IMU预积分约束和光流重投影约束联合优化。实验表明,该方法有效解决了时间戳未对齐导致的"跳舞箭头"现象,在手机端实现稳定30fps的AR定位精度,漂移误差降低至厘米级。特别提醒:IMU与视觉

ai技术增长的博客 161

Docker 环境 Playwright MCP 部署全流程指南

Docker部署Playwright MCP全流程指南 本文详细介绍了使用Docker容器化部署Playwright MCP的完整流程,涵盖镜像拉取、容器启动、配置优化和问题排查。主要内容包括: 核心部署步骤:通过官方镜像快速搭建环境,支持自定义端口和数据持久化 关键配置要点:详解网络设置、持久化目录挂载和环境变量配置 服务验证方法:通过日志检查和服务连通性测试确保部署成功 客户端集成:提供VS Code等IDE的配置示例 常见问题解决:针对浏览器启动超时、跨域限制等问题给出解决方案 实战案例:演示自动化爬

勤奋的码农 1473

类在编写过程中的一些注意事项

在编写类的时候我们要很好的把握细节问题,不仅仅要去避免一些明显的错误,更多的是如何形成良好的编程风格。下面我们将从下面的一个例子分析类的编写技巧: class Complex { public:    Complex(double real,double imaginary = 0):_real(real),_imaginary(imaginary){ }    void operato

脚踏实地,用心编写出客户满意的代码,为公司创造出应有的价值。 1115

从毫K级温控到分子级洁净:光刻机环境控制系统的技术演进与专利格局

摘要 光刻机环境控制系统是半导体制造中的"隐形精密工程",通过毫K级温度控制(±0.002℃)、超高洁净度(ISO Class 1)等核心技术为纳米级光刻提供环境保障。本文系统分析了温度、湿度、洁净度、流场和压力控制五大技术方向的发展趋势,揭示了从单参数控制向多参数协同智能控制的转型路径。研究显示:1)温度控制正从PID向神经网络智能控制演进;2)EUV光刻将湿度控制推至ppbv级;3)洁净度控制扩展到分子级污染物管理。头部厂商中,ASML侧重系统集成,Nikon专注浸没流场,Canon

huanghm88的专栏 310

如何用VS Code正确编写运行一个CPP程序

如何用VS Code正确编写运行一个CPP程序   最近准备用VS Code来复习一下数据结构的算法题,可是发现写出来的程序总是运行不成功,就算照着书上的程序敲都显示运行问题,那应该是我除了源程序以外,还有一些其他的文件没有配置好了,(因为此时的VSC是可以运行部分CPP程序的)看其他人的帖子要么讲不清楚,要么讲得太复杂,索性自己去看官方文档了。 假设此时你的编译器(GCC)和相应的扩展已经配置好。编写一个源程序,编译调试并成功运行的步骤如下: 1.编写源程序   打开cmd,输入以下命令, mkdir p

VallinaCC的博客 3195

【2025年美团春招(算法岗)-3月15日-第三题(300分)- 字符串权值】(题目+思路+Java&C++&Python解析+在线测试)

小美定义一个字符串的权值为:其长度为3的回文子序列数量。例如,“abca"的权值为2,因为包含两个回文子序列"aba"和"aca现在给定一个仅包含小写字母的字符串,小美希望你输出该字符串每个前缀的权值。

m0_73659489的博客 311

【产品】 产品设计:如何解决铝合金氧化着色后表面硬度低的问题(硬质氧化)

1、氧化处理技术 1)化学氧化 化学氧化处理所获得的膜层较薄,一般厚度为0.5μm ~4μm,质软不耐磨,抗蚀能力低于阳极氧化膜。 一般不宜单独便用,由于化学氧化膜吸附能力好,主要作用于油漆的底层,化学氧化按其溶液性可分为碱性和酸性两种。按其膜层性质可分为氧化膜,磷酸盐膜、铬酸盐膜及磷酸一铬酸盐膜等(这类型的氧化膜是可导电)。 2)电化学氧化(阳极氧化) 电化学氧化(俗称阳极氧化)是铝及...

产品线负责人 9723

c++ 开发中利用yaml-cpp读写yaml配置文件

在程序员的开发生涯中,读写配置文件必不可少。 配置文件有利于我们灵活配置工程,解决大量重复劳动,也方便调试。 配置文件的格式有很多,最简单的有一行一行的文本,也有像 json、xml、protocol buffer 这样结构化的格式,当然也有 yaml 这种格式。 今天的博文介绍的是如何在 C++ 开发中利用 yaml-cpp 开源库读写 yaml 配置文件。 如果有 Python 开发经验的同学...

frank 的专栏 6万+

【Android性能优化】Android App 冻结与内存压缩:CachedAppOptimizer 源码级解析

本文基于 AOSP Android 16 源码,以 `CachedAppOptimizer` 为核心,深度解析 Android 对"后台缓存应用"的两大治理手段——**进程冻结(Freezer)**与**内存压缩(Compaction)**。文中完整还原冻结的 debounce 去抖动机制、`mEarliestFreezableTime` 的最早可冻结时刻算法、粘性冻结(Sticky Freeze)的语义,以及解冻时必须"先解 binder 再解进程"的顺序奥义。

weixin_44081096的博客 174

cpp-httplib常见问题解决方案

cpp-httplib是一个C++11编写的单文件头文件跨平台HTTP/HTTPS库。它非常易于设置,只需包含`httplib.h`头文件即可。该库支持HTTP/HTTPS服务器和客户端的搭建,适用于Linux和Windows平台。 ## 新手使用注意事项及解决方案 ### 1. 编译器支持C++11 **问题描述**:由于cpp-httplib是基于C++11特性编写的,因此需要确保使用的...

gitblog_09306的博客 1890

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

C++函数分文件编写之VScode版

VScode实现函数的分文件编写 1.下载插件创建项目 2.分文件编写内容 3.修改主函数文件名

weixin_54929649的博客 3810

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

C++中.cpp和.hpp的区别

c++中 cpp和hpp 首先,我们可以将所有东西都放在一个.cpp文件内,编译器会将这个.cpp编译成.obj,即编译单元。一个程序可以由一个编译单元组成,也可以由多个编译单元组成。一个.cpp对应一个.obj,然后将所有的.obj链接起来(通过一个叫链接器的程序),组成一个.exe,即程序。如果一个.cpp要用到另一个.cpp定义的函数怎么办,只需在这个.cpp中写上它的函数声明。 链接器将所...

Qzx9059的博客 1万+

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

上一篇: C++ 的延时函数
下一篇: C++ 字符串融合 和 string 与 int 之间最简单的转换方法
AoboSir
博客等级 码龄10年 996粉丝 285原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值