C++类封装的例子

来源:互联网 发布:横向时间轴js代码 编辑:程序博客网 时间:2024/06/07 07:23
sorting.h//宏保护#ifndef SORTING_H_H_INCLUDED#define SORTING_H_H_INCLUDEDusing namespace std;class sorting(){public:         int n;         void bubble( );};#endif
sorting.cpp#include <iostream>#include "sorting.h"using namespace std;void sorting::bubble(){    //实现代码here}
main.cpp#include <iostream>#include "sorting.h"using namespace std;int main(){         sorting test;  //声明sorting类的对象         test.bubble();  //由对象调用函数         return 0;}
MakefileGCC := g++all:        $(GCC) -c main.cpp -o main.o        $(GCC) -c sorting.cpp -o sorting.o        $(GCC) -o main main.o sorting.oclean:#        rm main.o -rf#        rm sorting.o -rf#        rm main -rf         rm *.o main *~ -rf

这是一个类封装的例子,使用者无需知道实现细节,可以很方便地调用和测试函数。
#ifndef SORTING_H_H_INCLUDED
#define SORTING_H_H_INCLUDED
......
#endif
以上代码与直接在首行加入#pragma once的作用完全相同。宏保护,当在cpp文件里重复引入时可忽略,如:main.cpp中#include "sorting.h" 两次时,若没有宏保护则编译不通过,提示错误,若增加宏保护则不会。ifndef表示if not define,第一次引入.h时可顺利定义,之后的都被忽略。
private:说明,它后面所有的变量和函数,都不可能被类外访问,只能在类内被使用。
public:说明,它后面的所有变量和函数可以被类外的代码所访问,没有任何限制。
protected:说明,它后面的所有变量和函数,只能被自己或自己派生的类所使用。不能被类外的代码使用

原创粉丝点击