本文采用GCC编译环境,GCC版本为 "gcc version 3.4.5" 。
为了避免因为将类库中的私有成员开放给类的使用方而导致的软件逻辑外泄,因此需要将对外代码中的私有成员隐藏起来。
以下为测试代码。
开发端.h文件
#ifndef __LIB_TEST_H__
#define __LIB_TEST_H__
class Class3
{
public:
Class3();
~Class3();
int value();
void value(int a);
private:
int m_a;
};
#endif
开发端.cpp文件
#include <stdio.h>
#include "libtest.h"
Class3::Class3()
{
m_a=0;
}
Class3::~Class3()
{
}
int Class3::value()
{
return m_a;
}
void Class3::value(int a)
{
m_a=a;
}
编译生成静态库
gcc -c .\libtest.cpp
ar cqs libtest.a libtest.o
用户程序.cpp文件
#include <iostream.h>
#include "libtest.h"
int main(int argc, char *argv[])
{
Class3 m_class;
int inputvalue;
m_class.value(5);
printf("%d\ninput number:\n",m_class.value());
scanf("%d",&inputvalue);
m_class.value(inputvalue);
printf("\n%d\n",m_class.value());
return 0;
}
用户程序.h文件
#ifndef __LIB_TEST_H__
#define __LIB_TEST_H__
class Class3
{
public:
Class3();
~Class3();
int value();
void value(int a);
};
#endif
静态编译用户程序
g++ -o main_test main.cpp -L. -ltest
程序执行结果
D:\lib_test> .\main_test.exe
5
input number:
22
22
D:\qtapp\lib_test>