C++类与对象的进一步讨论(2) (二)

2014-11-24 12:52:43 · 作者: · 浏览: 1
std::cout<<"姓名:"<

32 }

33

34 void Employee::showEmployee() const

35 {

36 std::cout<<"常成员函数:"<

37 std::cout<<"编号:"<

38 std::cout<<"姓名:"<

39 }

40

41 int main()

42 {

43 Employee employee("001","aa");

44 employee.showEmployee();

45

46 std::cout<<"********************************"<

47

48 Employee const const_employee("002","bb");//常对象

49 const_employee.showEmployee();

50

51 return 0;

52 }

结果:

\

从上述示例代码中,我可以看到两个同名函数void showEmployee(),一个是普通成员函数,一个是常成员函数,它们是重载的,由此说明const可以被用于对重载函数的区分;

  3.C++的源程序基本上由3个部分组成:类的声明部分、类的实现部分和类的使用部分,针对3个部分,C++中对应分为3个文件:类声明文件(*.h文件)、类的实现文件(*.cpp)和类的使用文件(*.cpp,主函数main文件)。那么为什么C++中的要使用多文件,一个*.cpp类的使用文件就可解决的问题,为何那么麻烦要分三步走呢?主要有以下几个方面:(1)类的实现文件通常会比较大,将类的声明和实现放在一起,不利于程序的阅读、管理和维护。我们通常说接口应该和实现的部分分离,这样可以更易于修改程序。(2)把类成员函数的实现放在声明文件中和单独放实现文件里,在编译时是不一样的。前者是作为类的内联函数来处理的。(3)对于软件的厂商来说,它只需向用户提供程序公开的接口,而不用公开程序源代码。从这一点来看,我觉得C++在面向对象方面比C#更加明确,清晰。

  4.最后还是一样,我将用一个示例来总结一下今天所讲的内容,同时将把程序按照C++多文件的原则分成3个文件来实现(开发工具:vs2010):

1.声明文件*.h:

employee.h(雇员类的声明文件)

View Code

salary.h(薪水类的声明文件)

View Code

2.实现文件*.cpp:

employee.cpp(雇员类的实现文件)

View Code

salary.cpp(薪水类的实现文件)

View Code

3.使用文件*.cpp

main主函数文件

1 #include "stdafx.h"

2 #include

3

4 #include "salary.h"

5 int main()

6 {

7 {

8 Salary salary(3000,3000,0,200,100,"001","aaa");

9 salary.showSalary();

10 }

11

12 return 0;

13 }

结果:

\