//Foo.h
#ifndef FOO_H
#define FOO_H
#include <iostream>
namespace Foo
{
void display()
{
std::cout<<"display() in Foo ..."<<std::endl;
}
}
#endif
//Util.h
#ifndef UTIL_H
#define UTIL_H
#include <iostream>
namespace Foo
{
void info()
{
std::cout<<"info() in Foo ..."<<std::endl;
}
}
#endif
//Goo.h
#ifndef GOO_H
#define GOO_H
#include <iostream>
namespace Goo
{
void display()
{
std::cout<<"display() in Goo ..."<<std::endl;
}
}
#endif
//main.cpp
#include <iostream>
#include "Foo.h"
#include "Goo.h"
#include "Util.h"
int main(int argc, char *argv[])
{
Foo::display();
Goo::display();
Foo::info();
return 0;
}
//Foo.h
#ifndef FOO_H
#define FOO_H
#include <iostream>
namespace Foo
{
namespace Goo
{
void display()
{
std::cout<<"display() in Foo ..."<<std::endl;
}
}
}
#endif
//main.cpp
#include <iostream>
#include "Foo.h"
int main(int argc, char *argv[])
{
Foo::Goo::display();
return 0;
}
//Foo.h
#ifndef FOO_H
#define FOO_H
#include <iostream>
#include "Goo.h"
#include "Util.h"
namespace Foo
{
void display()
{
std::cout<<"display() in Foo ..."<<std::endl;
}
void callInfo()
{
info();
Foo::info();
Goo::info();
}
}
#endif
//Util.h
#ifndef UTIL_H
#define UTIL_H
#include <iostream>
namespace Foo
{
void info()
{
std::cout<<"info() in Foo ..."<<std::endl;
}
}
#endif
//Goo.h
#ifndef GOO_H
#define GOO_H
#include <iostream>
namespace Goo
{
void display()
{
std::cout<<"display() in Goo ..."<<std::endl;
}
void info()
{
std::cout<<"info() in Goo ..."<<std::endl;
}
}
#endif
//main.cpp
#include <iostream>
#include "Foo.h"
#include "Goo.h"
#include "Util.h"
int main(int argc, char *argv[])
{
Foo::callInfo();
return 0;
}
//Vehicle.h
#ifndef VEHICLE_H
#define VEHICLE_H
#include <iostream>
#include <string>
namespace Foo
{
class Vehicle
{
private:
std::string producer;
public:
//constructor
Vehicle(std::string s);
std::string getProducer() const {return producer;}
void setProducer(std::string producer);
virtual std::string toString();
virtual ~Vehicle();
};
}
#endif
//Vehicle.cpp
#include <iostream>
#include <string>
#include "Vehicle.h"
//constructor
Foo::Vehicle::Vehicle(std::string s):producer(s)
{
std::cout<<"Vehicle Constructor ..."<<std::endl;
}
void Foo::Vehicle::setProducer(std::string producer)
{
this->producer = producer;
}
std::string Foo::Vehicle::toString()
{
std::string temp;
temp = "Vehicle Producer: "+producer;
return temp;
}
Foo::Vehicle::~Vehicle()
{
std::cout<<"Vehicle Destructor ..."<<std::endl;
}
//Car.h
#ifndef CAR_H
#define CAR_H
#include <iostream>
#include <string>
#include "Vehicle.h"
namespace Foo
{
class Car : public Vehicle
{
private:
std::string model;
public:
//constructor
Car(std::string p, std::string m);
std::string getModel() const {return model;}
void setModel(std::string model);
std::string toString();
~Car();
};
}
#endif
//Car.cpp
#include <iostream>
#include <string>
#include "Vehicle.h"
#include "Car.h"
namespace Foo
{
//constructor
Car::Car(std::string p, std::string m):Vehicle(p), model(m)
{
std::cout<<"Car Constructor ..."<<std::endl;
}
void Car::setModel(std::string model)
{
this->model = model;
}
std::string Car::toString()
{
std::string temp;
temp = "Car Producer: "+getProducer()+" Model: "+model;
return temp;
}
Car::~Car()
{
std::cout<<"Car Destructor ..."<<std::endl;
}
}
//main.cpp
#include <iostream>
#include "Vehicle.h"
#include "Car.h"
int main(int argc, char *argv[])
{
Foo::Vehicle v("Buick");
std::cout<<v.toString()<<std::endl;
Foo::Car c("Honda", "Accord");
std::cout<<c.toString()<<std::endl;
return 0;
}