当几个类在不同文件定义的时候,该怎样使用定义好的类?
开始的时候,我是把每个类的定义和实现放在不同的文件,
然后在使用该类的地方直接使用的,结果是可想而知的,很
多错误。后来就问同事,同事说要把类的声明放在一个头文
件中,然后再在类文件中实现它。在使用的时候,要引用该
头文件。我作了个demo,如下:
假设该demo有两个类:A,B,分别定义在ClassA.cpp和ClassB.cpp
中,还有一个main.cpp,用来调用A,B这两个类,一个myHeader.h,
来存放A和B的声明。源代码如下:
1.myHeader.h:
class A
{
public:
A(){}
void print();
};
class B
{
public:
B(){}
void print();
};
2.ClassA.cpp
#include <iostream.h>
#include "myHeader.h"
void A::print()
{
cout<<"I am new object of class A!"<<endl;
}
3.ClassB.cpp
#include <iostream.h>
#include "myHeader.h"
void B::print()
{
cout<<"I am new object of class B!"<<endl;
}
4.main.cpp
#include "myHeader.h"
main()
{
A *a=new A();
B *b=new B();
a->print();
b->print();
return 0;
}
执行结果如下:
开始的时候,我是把每个类的定义和实现放在不同的文件,
然后在使用该类的地方直接使用的,结果是可想而知的,很
多错误。后来就问同事,同事说要把类的声明放在一个头文
件中,然后再在类文件中实现它。在使用的时候,要引用该
头文件。我作了个demo,如下:
假设该demo有两个类:A,B,分别定义在ClassA.cpp和ClassB.cpp
中,还有一个main.cpp,用来调用A,B这两个类,一个myHeader.h,
来存放A和B的声明。源代码如下:
1.myHeader.h:
class A
{
public:
A(){}
void print();
};
class B
{
public:
B(){}
void print();
};
2.ClassA.cpp
#include <iostream.h>
#include "myHeader.h"
void A::print()
{
cout<<"I am new object of class A!"<<endl;
}
3.ClassB.cpp
#include <iostream.h>
#include "myHeader.h"
void B::print()
{
cout<<"I am new object of class B!"<<endl;
}
4.main.cpp
#include "myHeader.h"
main()
{
A *a=new A();
B *b=new B();
a->print();
b->print();
return 0;
}
执行结果如下: