关于c++中public & private方法调用问题

class IDNoIdentifier
{
public:
    IDNoIdentifier();
    ~IDNoIdentifier();

    typedef vector<cv::Rect> CvRectVectorType;

    bool Init();
    bool Cleanup();
    bool HandleData(const Mat& rawImg,string& sNoInfo,string& sError);

private:
    bool IDNoLocation(const Mat& rawImg,        //输入原始BGR24数据
        Mat& dstImg,                            //经偏转校正等处理后的结果图,BGR8(灰度图),该函数内创建内存
        CvRectVectorType& IDNoVector,            //基于灰度图的字符位置序列
        string& sError);                        //如果处理失败,返回失败原因

    bool IDNoIdentify(const Mat& dstImg,const CvRectVectorType& IDNoVector,string& sInfo,string& sError);

private:
};

 

bool IDNoIdentifier::HandleData( const Mat& rawImg,string& sNoInfo,string& sError)
{
    if (rawImg.empty())
    {
        return false;
    }
    Mat dstImg;
    CvRectVectorType posionVec; 
    if (!IDNoLocation(rawImg,dstImg,posionVec,sError))
    {
        if (!dstImg.empty())
        {
            dstImg.release();
        }
        return false;
    }

....
}

public类型的HandleData里面包括了一个private的IDNoLocation

 

class codeExtract
{
public:
    codeExtract();
    ~codeExtract();
private:
    
    Mat picProcess(Mat img);
}

 

bool IDNoIdentifier::IDNoLocation( const Mat& rawImg,Mat& dstImg,CvRectVectorType& IDNoVector,string& sError)
{
    
    codeExtract code;
    
    /*图片二值化*/
    Mat img=code.picProcess(rawImg);   //字符清楚,矫正角度
...
}

会报错, error C2248: “codeExtract::picProcess”: 无法访问 private 成员(在“codeExtract”类中声明)

 

原因:因为这是IDNoIdentifier类下的方法啊。在这个类下不能看到类codeExtract中定义的私有方法滴

转载于:https://www.cnblogs.com/Daringoo/p/4495341.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值