Professional Documents
Culture Documents
Fiend Function Add 2 No Distance
Fiend Function Add 2 No Distance
no distance
#include <iostream>
class Distance
private:
int meter;
public:
60
};
Distance(): meter(0)
{}
//friend function
friendintaddFive(Dist;
// friend function
definition
int addFive(Distanced)
//accessing private
data from non-
member function
d.meter += 5;
return d.meter;
}
int main()
Distance D;
cout<<"Distance: "<<
addFive(D);
return 0;
include <iostream>
using namespace std;
// forward declaration
class B;
class A {
private:
int
numA;
};
public:
A(): numA (12) { }
// friend function declaration
friend int add (A, B);
class B {
private:
int
numB;
public:
B(): numB (1) { }
6
2
};
// friend function declaration
friend int add (A, B);
int add (A objectA, B objectB)
{
}
return (objectA.numA + objectB.numB);
int main()
{
}
A objectA;
B objectB;
cout<<"Sum: "<< add(objectA, objectB);
return 0;
inheritance
A Class can be derived from more than one base class. This is called Multiple
inheritance.
Syntax:
class A{
};
class B{
46
};
4.
class C: public A, public B
{
};
Examples
This example demonstrates the Public and Private Inheritance between the
classes.
#include <iostream>
class base
{
private:
int pridataA;
};
//private data member
protected:
int prodataA;
//protected data member
public:
int pubdataA;
class derivedl: public base
{
public:
void funct()
{
int a;
//public data member
//publically derived class
//error: not accessible
a=pridataA;
a=prodataA;
//ok
//ok
a=pubdataA;
47
};
}
class derived2: public base
{
public:
};
void funct()
{
//privately derived class
int a;
//error: not accessible
a=pridataA;
a=prodataA;
a=pubdataA;
}
int main()
{
int a;
derivedl objdl;
//ok
//ok
a=objdl.pridataA;
a= objdl.prodataA;
//error: not accessible
// error: not accessible
a= objdl.pubdataA;
derived2 objd2;
a=objd2.pridata
A;
a=objd2.prodata
A;
//ok (base public to derivedl)
a=objd2.pubdataA;
48
}
return 0;
//
// error: not accessible
er
ro
r:
// error: not accessible (base private to derived2)
no
t
ac
ce
SS
ib
le