首页 > 编程语言 > 详细

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

时间:2015-05-11 20:03:30      阅读:206      评论:0      收藏:0      [点我收藏+]
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中定义的私有方法滴

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

原文:http://www.cnblogs.com/Daringoo/p/4495341.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!