命名空间和模块化编程,头文件

#include <iostream>
#include <string>
#include "dynamic_memory.h"

Company::Company(std::string theName)
{
    name = theName;
};

void Company::printInfo()
{
    std::cout << "this company's name is " << name << std::endl;
};

TechCompany::TechCompany(std::string theName, std::string theproduct) : Company(theName)
{
    product = theproduct;
};

void TechCompany::printInfo()
{
    std::cout << "this company's name is " << name << " his product is " << product << std::endl;
}

int main()
{
    Company *company = new Company("Apple");
    company->printInfo();

    delete company;
    company = NULL;

    company = new TechCompany("Apple", "Iphone");
    company->printInfo();

    delete company;
    company = NULL;

}
/* vim: set ts=4 sw=4 sts=4 tw=100 */
预处理命令,避免重复编译
#ifndef DYNAMIC_MEMORY_H_INCLUDED 名字要保持一致,为了方便团队编程
#define DYNAMIC_MEMORY_H_INCLUDED class Company { public: Company(std::string theName); virtual void printInfo(); protected: std::string name; }; class TechCompany : public Company { public: TechCompany(std::string theName, std::string product); virtual void printInfo(); private: std::string product; }; #endif // DYNAMIC_MEMORY_H_INCLUDED

 

命名空间
#include <iostream> using namespace std; namespace a { void print(); void print(){ cout << "hello world from namespace a" << endl; } } namespace b{ void print(); void print(){ cout << "hello world from namespace b" << endl; } } int main() { a::print(); b::print();
   std:cout << "hello" << std:endl; 提倡
using namespace std; 整个命名空间全局化违背了命名空间的设计意图。不提倡
using std::cout 只给cout全局性, OK
只放在某个函数里,那么它只能在这一个函数里使用。
}

 

posted on 2015-03-22 22:33  雨渐渐  阅读(186)  评论(0编辑  收藏  举报

导航