V8 CPP 头文件拆解

1、头文件拆解

struct部分

struct Detection
{
    int class_id{0};  //int class_id = 0;只是代表id
    std::string className{};
    float confidence{0.0};
    cv::Scalar color{};
    cv::Rect box{};
};
//使用struct可能是为了强调这个数据结构主要作为数据载体,不需要复杂的封装或方法,且所有成员需要外部可以直接访问。例如,当处理检测结果时,可以直接创建一个Detection实例并访问其成员,而无需通过公共接口方法。
//使用struct:当你主要关注数据的组织和简单数据结构的表示,且不需要严格的封装时。
class部分
class Inference
{
public:
    Inference(const std::string &onnxModelPath, const cv::Size &modelInputShape = {640, 640}, const std::string &classesTxtFile = "", const bool &runWithCuda = true);
    std::vector<Detection> runInference(const cv::Mat &input);
//在头文件(通常以.h或.hpp为扩展名)中,通常只包含类的声明,定义了类的结构、成员变量、以及成员函数的原型(即函数签名,不包含函数体)。
//分开定义和声明是一种良好的编程实践,它促进了代码的清晰度、可维护性、模块化和高效的编译过程。
//不同的源文件可以根据声明定义不同函数功能。

•类内部的成员函数。

•类的友元函数或友元类(如果该private成员或整个类声明了友元关系)。

•在同一文件中定义的函数,如果该函数被声明为该类的内联友元函数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值