实例代码:
#include <iostream>
#include <string>
#include <vector>
using namespace std;
class Human{
public:
Human(){
std::cout << " 执行了Human::Human() " << std::endl;
}
Human(int abc){
std::cout << " 执行了Human::Human(int) " << std::endl;
}
virtual ~Human(){
}
void funcpub(){
std::cout << " 执行了Human::funcpub() " << std::endl;
}
void somenamefunc(){
std::cout << " 执行了Human::somenamefunc() " << std::endl;
}
void funchuman(){
std::cout << " 执行了Human::funchuman() " << std::endl;
}
virtual void eat(){
std::cout << " 人类吃各种粮食 " << std::endl;
}
public:
int m_age;
char m_name[100];
};
class Men : public Human{
public:
Men(){
std::cout << " 执行了Men::Men() " << std::endl;
}
Men(int abc){
std::cout << " 执行了Men::Men(int) " << std::endl;
}
void somenamefunc(){
Human::somenamefunc();
std::cout << " 执行了Men::somenamefunc() " << std::endl;
}
virtual void eat(){
std::cout << " 男人喜欢吃米饭 " << std::endl;
}
friend void func(const Men& tempmen);
private:
void funcmen()const {
std::cout << " 执行了Men::funcmen() " << std::endl;
}
public:
using Human::somenamefunc;
};
class WoMen : public Human{
public:
WoMen(){
std::cout << " 执行了WoMen::WoMen() " << std::endl;
}
WoMen(int abc){
std::cout << " 执行了WoMen::WoMen(int) " << std::endl;
}
void somenamefunc(){
Human::somenamefunc();
std::cout << " 执行了WoMen::somenamefunc() " << std::endl;
}
void funcmen(){
std::cout << " 执行了WoMen::funcmen() " << std::endl;
}
virtual void eat(){
std::cout << " 女人喜欢吃面食 " << std::endl;
}
public:
using Human::somenamefunc;
};
void func(const Men & tmpmen){
tmpmen.funcmen();
}
class A{
private:
int data;
friend class C;
};
class B;
class C{
public:
void callCAF(int x, A& a){
a.data = x;
cout << a.data << endl;
}
void callCAF2(A &a){
a.data;
}
void callCAFB(int x, B& b){
}
};
class B{
private:
int data;
friend void C::callCAFB(int x, B &a);
};
int main() {
Men men;
func(men);
A a;
C c;
c.callCAF(3, a);
B b;
C c1;
c1.callCAFB(3, b);
system("pause");
return 0;
}