小编Ash*_*win的帖子

警告:重载的虚函数"Base :: process"仅在类"derived"中被部分覆盖

我低于警告.我的部分代码是:

class Base {
public:
    virtual void process(int x) {;};
    virtual void process(int a,float b) {;};
protected:
    int pd;
    float pb;
};

class derived: public Base{
public:
    void process(int a,float b);
}

void derived::process(int a,float b){
    pd=a;
    pb=b;
    ....
}
Run Code Online (Sandbox Code Playgroud)

我收到以下警告:

 Warning: overloaded virtual function "Base::process" is only partially overridden in class "derived"
Run Code Online (Sandbox Code Playgroud)

我以任何方式将进程作为虚函数,所以我期待这个警告不应该来......这背后的原因是什么?

c++ overriding virtual-functions name-hiding

8
推荐指数
2
解决办法
4431
查看次数

OpenCL:一个内核可以调用另一个内核

嗨,
我正在尝试在OpenCL中运行可用的卷积代码.
我有异构系统 -
1)CPU
2)GPU
PFB我的代码库在我的系统中运行:

convolution.cl

// TODO: Add OpenCL kernel code here.
__kernel 
void convolve(
    const __global uint * const input,
    __constant uint     * const mask,
    __global uint       * const output,
    const int                   inputWidth,
    const int                   maskWidth){

        const int x = get_global_id(0);
        const int y = get_global_id(1);

        uint sum = 0;

        for (int r = 0; r < maskWidth; r++)
        {
            const int idxIntmp = (y + r) * inputWidth + x;
            for (int c = 0; …
Run Code Online (Sandbox Code Playgroud)

opencl

4
推荐指数
1
解决办法
678
查看次数

使用 H264 编解码器的 OpenCV 视频采集

我在我的项目中使用新的罗技相机 c920 进行对象识别。
我的相机可以支持H264编解码器并可以显示H264高清输出。
但是我如何在下面的代码中将 CODEC 类型设置为 H264,以使用 OpenCV 指令将其输出为 H264 解码流。

我使用以下逻辑捕获视频:参考:此链接

#include "opencv2/opencv.hpp"

using namespace cv;

int main(int, char**)
{
    VideoCapture cap(0); // open the default camera
    if(!cap.isOpened())  // check if we succeeded
        return -1;

    for(;;)
    {
        Mat frame;
        cap >> frame; // get a new frame from camera
        imshow("display", frame);
        if(waitKey(30) >= 0) break;
    }
    // the camera will be deinitialized automatically in VideoCapture destructor
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

opencv codec

4
推荐指数
1
解决办法
3万
查看次数

Lint:调用函数'memcpy(void*,const void*,std :: size_t)'违反语义'(3n> 4)'

这是我的代码库的一部分.我没有得到警告的意思,因此无法解决此问题...代码:

struct ParamsTube{
    uint8                Colours01[4];
    uint8                Colours02[4];
    uint8                Colours03[4];
};

void sample_fun(const uint8 *diagData){
    ParamsTube Record;
    memcpy(&Record.Colours01[0], &diagData[0], 4); //Line 1
    memcpy(&Record.Colours02[0], &diagData[4], 4); //Line 2
    memcpy(&Record.Colours03[0], &diagData[8], 4); //Line 3
}
Run Code Online (Sandbox Code Playgroud)

在第1,2和3行的这个逻辑的LINT警告426是

Call to function 'memcpy(void *, const void *, std::size_t)' violates semantic '(3n>4)'
Run Code Online (Sandbox Code Playgroud)

你能告诉我究竟是什么意思.....

c++ lint

3
推荐指数
1
解决办法
1167
查看次数

标签 统计

c++ ×2

codec ×1

lint ×1

name-hiding ×1

opencl ×1

opencv ×1

overriding ×1

virtual-functions ×1