Tôi nhận được lỗi sau khi tôi cố gắng truy cập vào thùng thành viên private của lớp GHistogram
từ bên trong việc thực hiện extractHistogram()
:Tại sao chức năng bạn bè này không thể truy cập thành viên riêng tư của lớp học?
error: 'QVector<double> MyNamespace::GHistogram::bins' is private
error: within this context
Trường hợp 'trong bối cảnh này' lỗi điểm để thực hiện extractHistogram()
. Có ai biết những gì sai với khai báo chức năng bạn bè của tôi?
Dưới đây là các mã:
namespace MyNamespace{
class GHistogram
{
public:
GHistogram(qint32 numberOfBins);
qint32 getNumberOfBins();
/**
* Returns the frequency of the value i.
*/
double getValueAt(qint32 i);
friend GHistogram * MyNamespace::extractHistogram(GImage *image,
qint32 numberOfBins);
private:
QVector<double> bins;
};
GHistogram * extractHistogram(GImage * image,
qint32 numberOfBins);
} // End of MyNamespace
là 'Gbdi' một lớp hoặc namespace? Bạn có 'Gbdi :: extractHistogram' là bạn. – quamrana
Xin lỗi, hãy thay thế Gbdi bằng MyNamespace. GBDI là tên nhóm nghiên cứu nơi tôi làm việc ... –