可以在类里面python 定义类对象一个本类的对象吗?

怎样在类中定义另一个类的对象-CSDN论坛
怎样在类中定义另一个类的对象
假如我声明了
static&int&i;
static&void&Load();
并实现了class&A;
想在再声明一个类B,在类B的实现中产生类5个A的对象
#include&a.h
A&a1,A2,A3,A4,A5;
就这么简单,楼主注意class&B申明的时候要前面有class&A哦,不然编译器不知道A是什么东西
然后注意构造函数和析构函数就可以了
如果类A在单独的文件
就要把A的头文件加进来
#include&a.h
A&a1,A2,A3,A4,A5;
如果A的定义和B在同一文件,&&
只要在B的前前面有A的声明就行。
就像定义int型变量一样简单
&&&static&int&i;
&&&static&void&Load();
&&&B&b[5];
类其实就是自定义类型,怎么用标准类型就怎么用类
引用&2&楼&&的回复:class&B&
就这么简单,楼主注意class&B申明的时候要前面有class&A哦,不然编译器不知道A是什么东西
然后注意构造函数和析构函数就可以了
构造函数和析构函数需要什么注意?
其实我也像大家说的那样,我在A的头文件声明了类A,&然后也声明了类B(在B中用A声明了一个变量),在A的cpp文件定义类A,接着定义类B,然后在另一文件主函数实现了类B,这些操作编译通过,可以执行,但效果不是我想象那样,但我一旦把B中的A声明注释掉或不实现类B就没事。
类其实就是自定义类型,怎么用标准类型就怎么用类
楼上说的很明白。
楼上说的很明白。
//////////////////////////////////////////////////////////////////////////
//TurnAround.h
//////////////////////////////////////////////////////////////////////////
#include&"stdafx.h"
//////////////////////////////////////////////////////////////////////////
#define&FISH_NUM
//////////////////////////////////////////////////////////////////////////
//类CMyPoint
class&CMyPoint&
CMyPoint();
CMyPoint(float&x,&float&y);
//////////////////////////////////////////////////////////////////////////
//类Fish_part1
class&Fish_part1
Fish_part1();
static&HTEXTURE
*hSpr1,&*hSpr2;
//备用精灵
hgeAnimation *hA
float time0 ;
float time1 ;
float time_
static&int
//所有图片数目
bool alive ;
//显示标志
float rotB
float speed ;
float x_pos,&y_
CMyPoint point[10];
CMyPoint begin_point[5];
CMyPoint point_
static int
//对象统计
void Init(HGE&*pHge);
void Init1(HGE&*pHge,&int&num);
void Move(HGE&*pHge);
void disappear(HGE&*pHge);
void GetDistanceAndAngle(CMyPoint&pt,&float&*distance,&float&*angle);
static void LoadTex(HGE&*pHge,&char&*path);
void Render();
//显示压分
static void CleanUp(HGE&*pHge);
protected:
//////////////////////////////////////////////////////////////////////////
//类CFishGroup
class&CFishGroup
CFishGroup();
Fish_part1
void InitFishGroup(HGE&*pHge,&int&nfish);
void Render();
protected:
//////////////////////////////////////////////////////////////////////////
//TurnAround.h
//////////////////////////////////////////////////////////////////////////
#include&"stdafx.h"
//////////////////////////////////////////////////////////////////////////
#define&FISH_NUM
//////////////////////////////////////////////////////////////////////////
//类CMyPoint
class&CMyPoint&
CMyPoint();
CMyPoint(float&x,&float&y);
//////////////////////////////////////////////////////////////////////////
//类Fish_part1
class&Fish_part1
Fish_part1();
static&HTEXTURE
*hSpr1,&*hSpr2;
//备用精灵
hgeAnimation *hA
float time0 ;
float time1 ;
float time_
static&int
//所有图片数目
bool alive ;
//显示标志
float rotB
float speed ;
float x_pos,&y_
CMyPoint point[10];
CMyPoint begin_point[5];
CMyPoint point_
static int
//对象统计
void Init(HGE&*pHge);
void Init1(HGE&*pHge,&int&num);
void Move(HGE&*pHge);
void disappear(HGE&*pHge);
void GetDistanceAndAngle(CMyPoint&pt,&float&*distance,&float&*angle);
static void LoadTex(HGE&*pHge,&char&*path);
void Render();
//显示压分
static void CleanUp(HGE&*pHge);
protected:
//////////////////////////////////////////////////////////////////////////
//类CFishGroup
class&CFishGroup
CFishGroup();
Fish_part1
float &&&&&&&&
void InitFishGroup(HGE&*pHge,&int&nfish);
void Render();
protected:
注意要声明一下哦
结论都还是比较不错
如果对象B有参数该怎么办,比如class&B(int,int),如何初始化?
回复2011年2月 C/C++大版内专家分月排行榜第二2010年2月 C/C++大版内专家分月排行榜第二2009年12月 C/C++大版内专家分月排行榜第二2009年11月 C/C++大版内专家分月排行榜第二
2009年10月 C/C++大版内专家分月排行榜第三
2009年4月 总版技术专家分月排行榜第一
2009年11月 Linux/Unix社区大版内专家分月排行榜第一2009年6月 Linux/Unix社区大版内专家分月排行榜第一2009年4月 C/C++大版内专家分月排行榜第一2009年3月 C/C++大版内专家分月排行榜第一2009年3月 Linux/Unix社区大版内专家分月排行榜第一2009年2月 Linux/Unix社区大版内专家分月排行榜第一
本帖子已过去太久远了,不再提供回复功能。2017年2月 总版技术专家分月排行榜第三
2017年5月 .NET技术大版内专家分月排行榜第一2017年4月 .NET技术大版内专家分月排行榜第一2017年3月 .NET技术大版内专家分月排行榜第一2017年2月 .NET技术大版内专家分月排行榜第一2016年10月 .NET技术大版内专家分月排行榜第一2016年8月 .NET技术大版内专家分月排行榜第一2016年7月 .NET技术大版内专家分月排行榜第一
2013年 总版技术专家分年内排行榜第一
2014年 总版技术专家分年内排行榜第三
本帖子已过去太久远了,不再提供回复功能。java中,一个对象被类定义后,可不可以多次分配内存给它?
类对象当然可以多次实例化,在NEW的时候,就已经分配相关信息了!
*******
当然是对NEW以后的类对象进分内存分配,而不是类定义本身!
JAVA的内存模型分为堆栈(stack)和堆(heap),堆栈是可以单向增加或减少的内存管理模型,而堆则是针对对象类型的内存堆表分配机制.对于内存管理,是由JAVA自动控制的,程序员本身无须过分关心!
在JAVA中,基本类型和对象类型的引用声明都是保存在堆栈之中(就是已经分配了堆栈内存空间),对于对象的引用,实际就是一个指针,当然JAVA取消了指针概念。如果对象引用,不实际指向某个堆内存中的对象,那它就是孤立的,当跳出......
类对象当然可以多次实例化,在NEW的时候,就已经分配相关信息了!
*******
当然是对NEW以后的类对象进分内存分配,而不是类定义本身!
JAVA的内存模型分为堆栈(stack)和堆(heap),堆栈是可以单向增加或减少的内存管理模型,而堆则是针对对象类型的内存堆表分配机制.对于内存管理,是由JAVA自动控制的,程序员本身无须过分关心!
在JAVA中,基本类型和对象类型的引用声明都是保存在堆栈之中(就是已经分配了堆栈内存空间),对于对象的引用,实际就是一个指针,当然JAVA取消了指针概念。如果对象引用,不实际指向某个堆内存中的对象,那它就是孤立的,当跳出方法或块之后,内存就会被回收.而在使用NEW关键字以后,对于对象类型的数据都是JAVA本身进行分配并保存在堆内存之中,而对于孤儿的堆内存对象,系统也会自动回收,或者代码释放.
由于JAVA的一切都是对象,包括类定义本身,如果没有定义或声明引用,没有NEW进行实例化,当然谈不上内存分配,纯是概念上的东西!
所以可以这样说,一个类对象可以多次实例化,对每个实例化的对象,JAVA都会同时分配相应的堆栈和堆内存(堆栈里的是对象引用,堆里的是对象数据)!
其他答案(共1个回答)
空间。
尽管一切都“看作”对象,但操纵的标识符实际上是对象的一个“引用”(reference)。你拥有一个引用,并不一定需要有一个对象与它关联。

S
这里只是创建引用,并不是对象。但我认为,此时已经给s在堆里分配了内存空间。
如果此时向s发送一个消息,就会返回一个运行时错误。这是...
不可以。可以对一个类多次实例化,但每次实例化都产生一个新对象,而不能对一个对象多次分配相关信息空间。
尽管一切都“看作”对象,但操纵的标识符实际上是对象的一个“引用”(reference)。你拥有一个引用,并不一定需要有一个对象与它关联。

S
这里只是创建引用,并不是对象。但我认为,此时已经给s在堆里分配了内存空间。
如果此时向s发送一个消息,就会返回一个运行时错误。这是因为此时s实际上没有与任何事物相关联。因此一定要对这个引用初始化。
String s="asdfg";
(或)String s=new String("asdfg");
像上面这样初始化后,这个内存空间里就存的"asdfg",而s就指向这里。
你说的再分配内存空间给这个对象,我不太明白。
如果是再写一次同样的初始化,如:
String s=new String("zxcvb");
编译时肯定会报错。
如果你真的想改变s的值(实际上是改变s引用的内存的值)可以这样写:
s="zxcvb";
一个标识符只能引用一个确定的对象,但一个确定的对象确实可以被不同的标识符同时引用。
占用,被调用的方法会放入本地方法栈中,调用方法的过程就是方法入栈出栈的过程
#include
#include
class date {
int year...
你手机是什么系统的?可以下载appman吗?可以看可运行内存。
既然说是内存不足,就运行不了的,软件大。很正常。
你说“看了容量还有很多”,是看哪里、什么?可能...
内存是运行电脑时非常关键的载体,你的每一步操作都会临时存储在内存中,内存有固定大小比如2G,那么开机时可能你的内存只占了500M,随后你打开游戏,游戏就会把数据...
假设我定义了一个类 A
然后定义了很多个A的子类,B,C,D,E,F等等
然后我需要写一个函数,然后这个函数的参数可能是所有的A的子类(只有子类中的一个),除了...
答: 大连最好的java培训学校在哪
答: 这个要设计到JNI的开发,就是用Java来调用C语言的函数库,还要编写缓冲器来解决传输问题,还有就是网络协议一定要了解,做的时候要用多线程来控制你所有的缓冲器,...
答: 所谓的网络编程,不论c还是java,本质上都是通过socket进行数据传输;
一般情况下可以使用的传输协议有tcp、udp、ftp等等,这些协议为网络变成提供基...
大家还关注
确定举报此问题
举报原因(必选):
广告或垃圾信息
激进时政或意识形态话题
不雅词句或人身攻击
侵犯他人隐私
其它违法和不良信息
报告,这不是个问题
报告原因(必选):
这不是个问题
这个问题分类似乎错了
这个不是我熟悉的地区
相关问答:123456789101112131415}

我要回帖

更多关于 类和对象的定义 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信