#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个
0 下载量 198 浏览量
2023-06-17
14:28:51
上传
评论
收藏 123KB 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
资源评论
毕业课程设计
- 粉丝: 2271
- 资源: 1675
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 发电系统simulink仿真模型风力光伏发电太阳能电池发电系统光敏电阻ADC读取程序
- 发电系统simulink仿真模型风力光伏发电太阳能电池发电系统蜂鸣器驱动程序
- 发电系统simulink仿真模型风力光伏发电太阳能电池发电系统独立看门狗测试程序
- 如何使用redis构建简单的社交网站.md
- 发电系统simulink仿真模型风力光伏发电太阳能电池发电系统定时器中断测试程序
- 发电系统simulink仿真模型风力光伏发电太阳能电池发电系统待机模式测试程序
- Screenshot_20240609_101817.jpg
- 01b8ab2bf936365ce73984328df2f6b2.dav
- 发电系统simulink仿真模型风力光伏发电太阳能电池发电系统窗口看门狗测试程序
- 发电系统simulink仿真模型风力光伏发电太阳能电池发电系统触摸按键驱动程序
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功