C++ 为什么可以';在课堂上初始化opencv Mat

C++ 为什么可以';在课堂上初始化opencv Mat,c++,class,opencv,pointers,mat,C++,Class,Opencv,Pointers,Mat,我试图初始化类Source_Buffer中Mat的构造函数,但我给了我一个错误“ConsoleApplication4.exe中发生了缓冲区溢出,它破坏了程序的内部状态。按Break调试程序或继续终止程序。” 不起作用。 显示“访问冲突写入位置0x0000000000000000”。猜一些空指针的东西。 我试着在课堂上搜索一些东西,但什么也找不到。 我的想法有什么问题 source.cpp 嗯,无法复制,您是如何/在哪里使用源缓冲区类的?我添加了额外的主代码 # include <iost

我试图初始化类Source_Buffer中Mat的构造函数,但我给了我一个错误“ConsoleApplication4.exe中发生了缓冲区溢出,它破坏了程序的内部状态。按Break调试程序或继续终止程序。”

不起作用。 显示“访问冲突写入位置0x0000000000000000”。猜一些空指针的东西。 我试着在课堂上搜索一些东西,但什么也找不到。 我的想法有什么问题

source.cpp
嗯,无法复制,您是如何/在哪里使用源缓冲区类的?我添加了额外的主代码
# include <iostream>
#include "opencv2/highgui/highgui.hpp"
#include "opencv2/imgproc/imgproc.hpp"
using namespace std;
using namespace cv;


class Source_Buffer {

public:
    Source_Buffer();
    int run();
private:
    const char* sffiename;
    Mat sfsrc; // this causes error
    Rect sfregion_of_interest;



};
Source_Buffer::Source_Buffer() :
sffiename("C:/ccc.jpg")
, sfsrc(imread(sffiename,0)) // and this
, sfregion_of_interest()
{

}

int Source_Buffer::run(){
    cout << "test" << endl;
    //Mat sfsrc = imread(sffiename, 0);
    sfregion_of_interest = Rect(90, 75, 250, 250);
    sfsrc = sfsrc(sfregion_of_interest);
(...)
return 0;
}
class Source_Buffer {

public:
    Source_Buffer();
    int run();
private:
    const char* sffiename;

    Rect sfregion_of_interest;
    Mat sfsrc;


};
Source_Buffer::Source_Buffer() :
sffiename("C:/ccc.jpg")

, sfregion_of_interest()
{

}

int Source_Buffer::run(){
    cout << "test" << endl;

    sfsrc = imread(sffiename, 0);
    sfregion_of_interest = Rect(90, 75, 250, 250);
    sfsrc = sfsrc(sfregion_of_interest);
return 0;
}
#include "Source_Buffer.h"
int main()
        {
            try
            {
                cout << "(1) Start !" << endl;
                Source_Buffer sfbuffer;
                cout << "(2) running entrance" << endl;
                //Source_Game source_game;
                //source_game.runc();
                sfbuffer.run();
            }
            catch (std::exception& e)
            {
                std::cout << "\nEXCEPTION: " << e.what() << std::endl;
            }
            return 0;
        }
#pragma once


/*bridge*/
class Source_Buffer {

public:
    Source_Buffer();
    int run();

};