导出类

c++动态库导出类方法:

无人久伴 提交于 2019-11-29 06:19:56
方法一:利用_declspec(dllexport) 这种简单导出类的方式,除了导出的东西太多,使用者对类的实现依赖太多之外,还有必须保证使用同一种编译器。 导出类的本质是导出类里面的函数,因为语法上直接导出了类,没有对函数的调用方式和重命名进行设置,导致了dll并不通用。 //导出C++类 class _declspec(dllexport) Stu { public: Stu(int id); void print(); private: int id; }; #include "stdafx.h" #include <iostream> using namespace std; #include "009.h" Stu::Stu(int id) { this->id=id; } void Stu::print() { cout<<"id="<<id<<endl<<endl; } #include <iostream> #include "../009/009.h" #pragma comment(lib,"../Debug/009.lib") int main() { Stu s(123); s.print(); return 0; } 方法二:较好的方式 定义一个抽象类(都是纯虚函数),调用者跟dll共用一个抽象类的头文件。DLL实现此抽象类的派生类

Java编程思想---第一章

本秂侑毒 提交于 2019-11-26 10:57:02
第一章 对象导论   计算机革命起源于机器,因此,编程语言的产生也始于对机器的模仿。但计算机并非只是机器那么简单,面向对象程序 (Object-oriented Programming, OOP) 设计便是以计算机作为表达媒体的大趋势中的组成部分。 1.1 抽象过程   所有编程语言都提供抽象机制,人们所能够解决的问题的复杂性直接取决于抽象的类型和质量。   面向对象方式通过向程序员提供表示问题空间中的元素的工具而更进一步,这种表示方式非常通用,我们将问题空间中的元素以及在解空间中的表示称为 “对象”。这种思想的实质是:程序可以通过添加新类型的对象,使自身适用于某个特定的问题。这是一种更灵活和更有力的语言抽象。   Alan KAy 总结了第一个成功的面向对象语言,同时也是 Java 所基于的语言之一的 Smalltalk 的五个基本特性,这些特性表现了一种纯粹的面向对象程序设计方式:     1) 万物皆为对象。 将对象视为奇特的变量,它可以存储数据,还可以要求它在自身上执行操作,理论上讲,你可以抽取带求解问题的任何概念化作构件。     2) 程序时对象的集合,它们通过发送消息来告知彼此要做的。 要想请求一个对象,就必须给该对象发送一条消息,可以把消息想象为对某个特定对象方法的调用请求。     3) 每个对象都有自己的由其他对象所构成的存储。