How to make a function friend to both base and derived class
Hi,
I have a base class and derived a class from the base class, i want to print & read the data for the object created for the derived class,so i have overloaded both the << and >> operators and also have done the foward declaration.
Below is the code snippet,
Code:
#include <iostream>
class Line; // Forward Declaration for friend
class Point {
private:
int x,y;
public:
virtual void draw() ;
friend std::ostream& operator<< ( std::ostream& , const Line&);
friend std::istream& operator>> ( std::istream& , Line&);
};
class Line : public Point {
private:
int color;
public :
void draw () { std::cout<< "Drawing a Line" << std::endl; }
friend std::ostream& operator<< ( std::ostream& , const Line&);
friend std::istream& operator>> ( std::istream& , Line&);
};
inline
std::ostream& operator<< ( std::ostream &os , const Line &out ) {
os<<"Line: [" << out.x << "," << out.y << " ," << out.color << " ]" << std::endl;
return os;
}
inline
std::istream& operator>> ( std::istream &is , const Line &in ) {
std::cout<<"Line x , y , color info: " << std::endl;
is >> in.x >> in.y >> in.color;
return is;
}
int main(int argc, char *aargv) {
Line new_line;
std::cin>>new_line;
std::cout<<new_line;
return(0);
}
Am using g++ and on compiling i get the below errors, how to fix this
Code:
g++ friends.cpp
friends.cpp: In function `std::istream& operator>>(std::istream&, const Line&) ':
friends.cpp:8: error: `int Point::x' is private
friends.cpp:34: error: within this context
friends.cpp:8: error: `int Point::y' is private
friends.cpp:34: error: within this context
friends.cpp:18: error: `int Line::color' is private
friends.cpp:34: error: within this context
Dear All,
I have a requests to retrieve all lines if second line last columns meets certain criteria.
Here is the output of the result
Table: DSSBDW.DA_MASK_CLK_AR
120908 0 86 86 - 1934528 0 70 100 -*-
Table: DSSBDW.DA_MASK_CLK_IP
310657 22030 143 185 - 5281169 7 88 77 *-*
Table:... (5 Replies)
Hello All,
I am a learner in C++. I was testing my inheritance knowledge with following piece of code.
#include <iostream>
using namespace std;
class base
{
public :
void display()
{
cout << "In base display()" << endl;
}
void display(int k)
{... (2 Replies)
I have the two class definition as follows.
class A { public: int a; };
class B : virtual public A{ };
The size of class A is shown as 4, and size of class B is shown as 16. Why is this effect ?. (2 Replies)
Hi,
Can anyone tell me why the following program is giving compiler error when I use a friend function of a class as the comparison predicate for the third parameter of std::sort() algorithm? How to correct it, keep the 'friend' intact?
#include <iostream>
#include <vector>
#include <list>... (1 Reply)
Hi friends,
The derived class cannot access the base class's variables in my program. You can have a look at my code, I am actually using class templates.
#include <iostream>
using namespace std;
template <class T>
class Sum
{
friend void Check(Sum &s, T a, T b)
{
T x,... (2 Replies)
Please help check an old code:
#include <iostream>
using namespace std;
template <class C>
class List {
//Linked list of C.
template<class U>
friend class ListItr;
private:
class ListEl {
public:
C val;
ListEl* next;
ListEl(const C& s, ListEl* n) : val(s) { next = n;}
};... (0 Replies)
Need help on making a loop script base on what is inside a file...
File to read: List.txt
List.txt contains below w/c are file name as well:
SAMPLEa
SAMPLEb
SAMPLEc
SAMPLEd
SAMPLEe
SAMPLEf
.
.
.
Want to make a loop that will manipulate those that are inside the file.txt w/c are... (3 Replies)