//头文件 TaxCaculator.h
class _declspec(dllexport) TaxCalculator {
private:
double income;
double taxRate;
public:
int a;
int b;
TaxCalculator(double income, double taxRate);
~TaxCalculator();
virtual double calculate();
};
extern "C" _declspec(dllexport) TaxCalculator* CreateObjet (double income, double taxRate);
//实现文件 TaxCaculator.cpp
#include "TaxCaculator.hpp"
TaxCalculator::TaxCalculator(double income, double taxRate){
this -> income = income;
this -> taxRate = taxRate;
a = 2;
b = 5;
}
TaxCalculator::~TaxCalculator(){
}
double TaxCalculator::calculate(){
return (income * taxRate);
}
#include "TaxCalculator.h"
#include <iostream>
int main() {
TaxCaculator* caclulator = CreateObject(1000, 0.3);
int a = calculator -> a;
int b = calculator -> b;
return 0;
}
virtual int fa();
virtual int fb();
分别实现之。 编译服务器端和客户端。得到版本 1.
改变定义顺序:
virtual int fb();
virtual int fa();
编译服务器端和客户端。得到版本 2. 打乱版本的搭配顺序,调用将出现错乱。这又是为什么?
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.