#pragma once
#include <algorithm>
#include <initializer_list>
#include "java/lang/Object.hpp"
#include "java/lang/Cloneable.hpp"
#include "java/io/Serializable.hpp"
namespace java
{
namespace lang
{
class ObjectArray;
}
}
class java::lang::ObjectArray
: public virtual ::java::lang::Object
, public virtual ::java::lang::Cloneable
, public virtual ::java::io::Serializable
{
public:
static ::java::lang::Class *class_();
typedef ::java::lang::Object super;
typedef Object *value_type;
typedef value_type *pointer_type;
typedef int size_type;
ObjectArray() : length_(0), p(nullptr) { }
ObjectArray(int n) : length_(n), p(new value_type[n]) { std::fill(p, p+length_, nullptr); }
ObjectArray(const value_type *p, int n) : length_(n), p(new value_type[n])
{
std::copy(p, p+n, this->p);
}
template<typename T>
ObjectArray(std::initializer_list<T> l) : length_(l.size()), p(new value_type[l.size()])
{
std::copy(l.begin(), l.end(), p);
}
ObjectArray(const ObjectArray &rhs) : length_(rhs.length_), p(new value_type[rhs.length_])
{
std::copy(rhs.p, rhs.p + rhs.length_, p);
}
ObjectArray(ObjectArray &&rhs) : length_(rhs.length_), p(rhs.p)
{
const_cast<pointer_type&>(rhs.p) = 0;
}
ObjectArray &operator=(const ObjectArray &rhs)
{
if(&rhs != this) {
delete p;
const_cast<pointer_type&>(p) = 0;
const_cast<size_type&>(length_) = rhs.length_;
const_cast<pointer_type&>(p) = new value_type[length_];
std::copy(rhs.p, rhs.p + length_, p);
}
return *this;
}
ObjectArray &operator=(ObjectArray &&rhs)
{
if(&rhs != this) {
delete p;
const_cast<size_type&>(length_) = rhs.length_;
const_cast<pointer_type&>(p) = rhs.p;
const_cast<pointer_type&>(rhs.p) = 0;
}
return *this;
}
virtual ~ObjectArray() { delete p; }
ObjectArray* clone() override { return new ObjectArray(*this); }
value_type operator[](size_type i) const { return get(i); }
value_type get(size_type i) const { return p[i]; }
template<typename T>
T set(size_type i, T x) { set0(i, x); return x; }
const size_type length_;
const pointer_type p;
private:
::java::lang::Class *getClass0() override;
virtual void set0(size_type i, Object *x) { p[i] = x; }
};
没有合适的资源?快使用搜索试试~ 我知道了~
基于java的开发源码-转C++代码工具 J2C.zip
共43个文件
class:33个
hpp:4个
tmpl:3个
1 下载量 94 浏览量
2024-02-22
19:51:51
上传
评论
收藏 123KB ZIP 举报
温馨提示
pycharm配置python环境 基于java的开发源码-转C++代码工具 J2C.zip 基于java的开发源码-转C++代码工具 J2C.zip 基于java的开发源码-转C++代码工具 J2C.zip 基于java的开发源码-转C++代码工具 J2C.zip 基于java的开发源码-转C++代码工具 J2C.zip 基于java的开发源码-转C++代码工具 J2C.zip 基于java的开发源码-转C++代码工具 J2C.zip 基于java的开发源码-转C++代码工具 J2C.zip
资源推荐
资源详情
资源评论
收起资源包目录
基于java的开发源码-转C++代码工具 J2C.zip (43个子文件)
se
arnetheduck
j2c
snippets
GetSetSnippet.class 4KB
ReplaceInvocation.class 3KB
resources
SubArray.hpp.tmpl 1KB
synchronized.hpp 382B
ObjectArray.hpp 2KB
Makefile.tmpl 2KB
Main.cpp.tmpl 122B
finally.hpp 430B
Array.hpp 2KB
handlers
HandlerHelper.class 6KB
TransformHandler.class 3KB
TestHandler.class 2KB
HandlerHelper$1.class 2KB
transform
TransformUtil.class 36KB
TypeUtil.class 5KB
MakefileWriter.class 3KB
TypeBindingHeaderWriter.class 8KB
Transformer.class 17KB
Snippet.class 1KB
ImplWriter$NodeInfo.class 625B
UnitInfo.class 1KB
TransformUtil$2.class 1KB
TransformWriter.class 20KB
ForwardWriter.class 6KB
BindingComparator.class 948B
StubWriter.class 11KB
Transformer$ICUComparator.class 1KB
Transformer$1.class 3KB
Impl.class 10KB
TransformUtil$1.class 958B
ArrayWriter.class 6KB
MainWriter$Info.class 949B
MakefileWriter$Info.class 720B
ImplWriter.class 61KB
MainWriter.class 2KB
Header.class 22KB
EmptySnippet.class 3KB
ForwardWriter$Info.class 2KB
HeaderWriter.class 16KB
Activator.class 1KB
plugin.xml 2KB
icons
sample.gif 983B
META-INF
MANIFEST.MF 839B
共 43 条
- 1
资源评论
快乐无限出发
- 粉丝: 1130
- 资源: 7265
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功