30/09/2018, 23:54

Hỏi về Nạp Chồng Toán Tử Operator >> <<

Em đã khai báo friend bên “PhanSo.h”:

friend istream& operator >>(istream &, PhanSo &);

Nhưng khi qua PhanSo.cpp, em muốn viết ps.TuSo thì ps không cho truy nhập vào thuộc tính TuSo. Mọi người chỉ giúp em với ạ !

istream& operator >>(istream &in, PhanSo &ps)
{
	cout << "nhap tu so vs mau so cho phan so: " << endl;
	in >> ps.
}

p/s: em dùng visual studio 2015

Khánh Nguyễn viết 01:57 ngày 01/10/2018

Bạn viết xong rồi compile xem nó báo lỗi gì?

viết 02:00 ngày 01/10/2018

nó báo lỗi là không truy nhập được:
Member PhanSo::TuSo is inaccessible.

Khánh Nguyễn viết 02:04 ngày 01/10/2018

Hay bạn đăng full code lên đi cho dễ tìm lỗi.

viết 02:08 ngày 01/10/2018

Bên “PhanSo.h” :

#pragma once
class PhanSo
{
private:
	float Tu, Mau;
public:
	PhanSo();
	~PhanSo();
	PhanSo(float, float);
	void Nhap();
	void Xuat();
	PhanSo RutGon();
	friend istream& operator >>(istream &, PhanSo &);
};

Bên PhanSo.cpp :

#include "PhanSo.h"
#include <iostream>
using namespace std;

PhanSo::PhanSo()
{
	Tu = 0;
	Mau = 1;
}

PhanSo::~PhanSo(){}

PhanSo::PhanSo(float t, float m)
{
	Tu = t;
	Mau = m;
}

void PhanSo::Nhap()
{
	cout << "nhap Tu vs Mau cho PhanSo: " << endl;
	cin >> Tu >> Mau;
}

void PhanSo::Xuat()
{
	cout << Tu << " / " << Mau << endl;
}

istream& operator >>(istream &in, PhanSo &ps)
{
	cout << "nhap tu so vs mau so cho phan so: " << endl;
	in >> ps. >> ps.
}

Dòng code cuối cùng : em muốn viết in >> ps.Tu >> ps.Mau. Nhưng Visual gạch đỏ dưới Tu , Mau báo inaccessible

Khánh Nguyễn viết 02:01 ngày 01/10/2018

Máy mình compile bình thường.

viết 01:54 ngày 01/10/2018

Bởi vậy em mới thắc mắc. em khai báo hàm friend rồi, viết đúng cú pháp rồi mà vẫn không cho truy nhập vào thuộc tính của PhanSo. em không hiểu nổi.

viết 01:57 ngày 01/10/2018

À em tìm ra vấn đề rồi,
Bên “PhanSo.h” em chưa #include <iostream> using namespace std;
nên hàm friend istream& operator >>(istream &, PhanSo &); chưa đúng, nên qua PhanSo.cpp hàm chưa đúng cũng không cho truy nhập luôn.

Cảm ơn anh đã hỗ trợ em nha.

Bài liên quan
0