#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个

2 下载量 50 浏览量
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
资源推荐
资源详情
资源评论























收起资源包目录





















































共 43 条
- 1
资源评论


快乐无限出发
- 粉丝: 1248
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 中铁最成功的项目管理经验.doc
- 种系统工具的优化程序您不要在Windows上需要.pdf
- 数据库系统原理第七章答案.ppt
- 2022年上半年软件设计师考试上午模拟真题.docx
- 小区网络综合布线系统设计方案.doc
- 恢复Excel未保存文件的方法【会计实务操作教程】.pptx
- 基于硬盘方式的LINUX双系统安装操作系统课程实验报告.doc
- 从技术专家到管理者的关键转型
- 网络管理员述职报告.doc
- 企业项目管理新的解决方案.doc
- -嵌入式系统外围设备.pptx
- 科普知识网站设计与实现文献综述.docx
- 动态规划算法原理及应用样本.doc
- 基于单片机的热水器温度控制系统设计.doc
- 通信保障年度工作总结.docx
- 初中计算机教学年度个人工作总结.docx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈



安全验证
文档复制为VIP权益,开通VIP直接复制
