C++中的结构体对应与java中的什么?
对c++不数据,看有些算法说用结构体来表示事物,感觉像java中定义的类,我这样理解对吗?他们有什么异同吗,望指教,最好具体易懂些...
对c++不数据,看有些算法说用结构体来表示事物,感觉像java中定义的类,我这样理解对吗?他们有什么异同吗,望指教,最好具体易懂些
展开
6个回答
展开全部
C++中的struct对C中的struct进行了扩充,除了struct成员默认权限是public,而class默认是private,C++中的struct与class功能几乎等价,同样的,也对应Java中的class。
按C++设计思路,struct的保留是为了C程序员在C++语言中找到归属感。
按C++设计思路,struct的保留是为了C程序员在C++语言中找到归属感。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
C++不是完全面向对象的语言,而java是完全面向对象的语言,从某种角度来说,可以把C++中的结构体当做java中的类理解。因为他们的思想确实很像。但是它们不是一个东西,这要涉及到其内部存储等问题了...
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
Effective Java里说C/C++里的联合、结构体在Java中都是用类实现的。可以看一下这本书。
另外Javolution这个第三方库提供了Struct实现类似C/C++中struct的功能。
C Struct的一个简单例子:
enum Gender{MALE, FEMALE};
struct Date {
unsigned short year;
unsigned byte month;
unsigned byte day;
};
struct Student {
enum Gender gender;
char name[64];
struct Date birth;
float grades[10];
Student* next;
};
Java的等价代码:
public enum Gender { MALE, FEMALE };
public static class Date extends Struct {
public final Unsigned16 year = new Unsigned16();
public final Unsigned8 month = new Unsigned8();
public final Unsigned8 day = new Unsigned8();
}
public static class Student extends Struct {
public final Enum32<Gender> gender = new Enum32<Gender>(Gender.values());
public final UTF8String name = new UTF8String(64);
public final Date birth = inner(new Date());
public final Float32[] grades = array(new Float32[10]);
public final Reference32<Student> next = new Reference32<Student>();
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
没有特别合适的对应的结构体
c++的类对应java的类,结构体没有对应的
c++的类对应java的类,结构体没有对应的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询