class A
{
static int i;
static void Load();
}
并实现了class A;
想在再声明一个类B,在类B的实现中产生类5个A的对象
16 个解决方案
#1
#include a.h
class B
{
public:
A a1,A2,A3,A4,A5;
}
class B
{
public:
A a1,A2,A3,A4,A5;
}
#2
class B
{
A a1;
A a2;
A a3;
A a4;
A a5;
}
就这么简单,楼主注意class B申明的时候要前面有class A哦,不然编译器不知道A是什么东西
然后注意构造函数和析构函数就可以了
{
A a1;
A a2;
A a3;
A a4;
A a5;
}
就这么简单,楼主注意class B申明的时候要前面有class A哦,不然编译器不知道A是什么东西
然后注意构造函数和析构函数就可以了
#3
如果类A在单独的文件
就要把A的头文件加进来
如1楼
#include a.h
class B
{
public:
A a1,A2,A3,A4,A5;
}
如果A的定义和B在同一文件,
只要在B的前前面有A的声明就行。
class A;
就要把A的头文件加进来
如1楼
#include a.h
class B
{
public:
A a1,A2,A3,A4,A5;
}
如果A的定义和B在同一文件,
只要在B的前前面有A的声明就行。
class A;
#4
就像定义int型变量一样简单
class A
{
static int i;
static void Load();
B b[5];
};
#5
类其实就是自定义类型,怎么用标准类型就怎么用类
#6
楼上正解
#7
构造函数和析构函数需要什么注意?
#8
其实我也像大家说的那样,我在A的头文件声明了类A, 然后也声明了类B(在B中用A声明了一个变量),在A的cpp文件定义类A,接着定义类B,然后在另一文件主函数实现了类B,这些操作编译通过,可以执行,但效果不是我想象那样,但我一旦把B中的A声明注释掉或不实现类B就没事。
#9
类其实就是自定义类型,怎么用标准类型就怎么用类www.913wz.com
#10
楼上说的很明白。
#11
楼上说的很明白。
#12
//////////////////////////////////////////////////////////////////////////
//TurnAround.h
//////////////////////////////////////////////////////////////////////////
#include "stdafx.h"
//////////////////////////////////////////////////////////////////////////
//宏定义
#define FISH_NUM 50
//////////////////////////////////////////////////////////////////////////
//类CMyPoint
class CMyPoint
{
public:
CMyPoint();
CMyPoint(float x, float y);
float x;
float y;
};
//////////////////////////////////////////////////////////////////////////
//类Fish_part1
class Fish_part1
{
public:
Fish_part1();
static HTEXTURE hTex[5];
hgeSprite *hSpr ;
hgeSprite *hSpr1, *hSpr2; //备用精灵
hgeAnimation *hAnimation; //动画
float time0 ; //间隔
float time1 ; //间隔
float time_disppear;
static int pic_num ; //所有图片数目
bool alive ; //显示标志
int moveType;
int power ;
float rot ; //方向
float rotBegin;
float speed ;
float x_pos, y_pos;
CMyPoint point[10];
CMyPoint begin_point[5];
int point_b;
int point_i;
CMyPoint point_target;
static int n_Count ; //对象统计
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:
private:
};
//////////////////////////////////////////////////////////////////////////
//类CFishGroup
class CFishGroup
{
public:
CFishGroup();
Fish_part1 fish;
float time;
int nFishs;
void InitFishGroup(HGE *pHge, int nfish);
void Render();
protected:
private:
};
#13
//////////////////////////////////////////////////////////////////////////
//TurnAround.h
//////////////////////////////////////////////////////////////////////////
#include "stdafx.h"
//////////////////////////////////////////////////////////////////////////
//宏定义
#define FISH_NUM 50
//////////////////////////////////////////////////////////////////////////
//类CMyPoint
class CMyPoint
{
public:
CMyPoint();
CMyPoint(float x, float y);
float x;
float y;
};
//////////////////////////////////////////////////////////////////////////
//类Fish_part1
class Fish_part1
{
public:
Fish_part1();
static HTEXTURE hTex[5];
hgeSprite *hSpr ;
hgeSprite *hSpr1, *hSpr2; //备用精灵
hgeAnimation *hAnimation; //动画
float time0 ; //间隔
float time1 ; //间隔
float time_disppear;
static int pic_num ; //所有图片数目
bool alive ; //显示标志
int moveType;
int power ;
float rot ; //方向
float rotBegin;
float speed ;
float x_pos, y_pos;
CMyPoint point[10];
CMyPoint begin_point[5];
int point_b;
int point_i;
CMyPoint point_target;
static int n_Count ; //对象统计
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:
private:
};
//////////////////////////////////////////////////////////////////////////
//类CFishGroup
class CFishGroup
{
public:
CFishGroup();
Fish_part1 fish;
float time;
int nFishs;
void InitFishGroup(HGE *pHge, int nfish);
void Render();
protected:
private:
};
#14
class B
{
A a1;
A a2;
A a3;
A a4;
A a5;
};
注意要声明一下哦
{
A a1;
A a2;
A a3;
A a4;
A a5;
};
注意要声明一下哦
#15
结论都还是比较不错
#16
如果对象B有参数该怎么办,比如class B(int,int),如何初始化?
#1
#include a.h
class B
{
public:
A a1,A2,A3,A4,A5;
}
class B
{
public:
A a1,A2,A3,A4,A5;
}
#2
class B
{
A a1;
A a2;
A a3;
A a4;
A a5;
}
就这么简单,楼主注意class B申明的时候要前面有class A哦,不然编译器不知道A是什么东西
然后注意构造函数和析构函数就可以了
{
A a1;
A a2;
A a3;
A a4;
A a5;
}
就这么简单,楼主注意class B申明的时候要前面有class A哦,不然编译器不知道A是什么东西
然后注意构造函数和析构函数就可以了
#3
如果类A在单独的文件
就要把A的头文件加进来
如1楼
#include a.h
class B
{
public:
A a1,A2,A3,A4,A5;
}
如果A的定义和B在同一文件,
只要在B的前前面有A的声明就行。
class A;
就要把A的头文件加进来
如1楼
#include a.h
class B
{
public:
A a1,A2,A3,A4,A5;
}
如果A的定义和B在同一文件,
只要在B的前前面有A的声明就行。
class A;
#4
就像定义int型变量一样简单
class A
{
static int i;
static void Load();
B b[5];
};
#5
类其实就是自定义类型,怎么用标准类型就怎么用类
#6
楼上正解
#7
构造函数和析构函数需要什么注意?
#8
其实我也像大家说的那样,我在A的头文件声明了类A, 然后也声明了类B(在B中用A声明了一个变量),在A的cpp文件定义类A,接着定义类B,然后在另一文件主函数实现了类B,这些操作编译通过,可以执行,但效果不是我想象那样,但我一旦把B中的A声明注释掉或不实现类B就没事。
#9
类其实就是自定义类型,怎么用标准类型就怎么用类www.913wz.com
#10
楼上说的很明白。
#11
楼上说的很明白。
#12
//////////////////////////////////////////////////////////////////////////
//TurnAround.h
//////////////////////////////////////////////////////////////////////////
#include "stdafx.h"
//////////////////////////////////////////////////////////////////////////
//宏定义
#define FISH_NUM 50
//////////////////////////////////////////////////////////////////////////
//类CMyPoint
class CMyPoint
{
public:
CMyPoint();
CMyPoint(float x, float y);
float x;
float y;
};
//////////////////////////////////////////////////////////////////////////
//类Fish_part1
class Fish_part1
{
public:
Fish_part1();
static HTEXTURE hTex[5];
hgeSprite *hSpr ;
hgeSprite *hSpr1, *hSpr2; //备用精灵
hgeAnimation *hAnimation; //动画
float time0 ; //间隔
float time1 ; //间隔
float time_disppear;
static int pic_num ; //所有图片数目
bool alive ; //显示标志
int moveType;
int power ;
float rot ; //方向
float rotBegin;
float speed ;
float x_pos, y_pos;
CMyPoint point[10];
CMyPoint begin_point[5];
int point_b;
int point_i;
CMyPoint point_target;
static int n_Count ; //对象统计
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:
private:
};
//////////////////////////////////////////////////////////////////////////
//类CFishGroup
class CFishGroup
{
public:
CFishGroup();
Fish_part1 fish;
float time;
int nFishs;
void InitFishGroup(HGE *pHge, int nfish);
void Render();
protected:
private:
};
#13
//////////////////////////////////////////////////////////////////////////
//TurnAround.h
//////////////////////////////////////////////////////////////////////////
#include "stdafx.h"
//////////////////////////////////////////////////////////////////////////
//宏定义
#define FISH_NUM 50
//////////////////////////////////////////////////////////////////////////
//类CMyPoint
class CMyPoint
{
public:
CMyPoint();
CMyPoint(float x, float y);
float x;
float y;
};
//////////////////////////////////////////////////////////////////////////
//类Fish_part1
class Fish_part1
{
public:
Fish_part1();
static HTEXTURE hTex[5];
hgeSprite *hSpr ;
hgeSprite *hSpr1, *hSpr2; //备用精灵
hgeAnimation *hAnimation; //动画
float time0 ; //间隔
float time1 ; //间隔
float time_disppear;
static int pic_num ; //所有图片数目
bool alive ; //显示标志
int moveType;
int power ;
float rot ; //方向
float rotBegin;
float speed ;
float x_pos, y_pos;
CMyPoint point[10];
CMyPoint begin_point[5];
int point_b;
int point_i;
CMyPoint point_target;
static int n_Count ; //对象统计
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:
private:
};
//////////////////////////////////////////////////////////////////////////
//类CFishGroup
class CFishGroup
{
public:
CFishGroup();
Fish_part1 fish;
float time;
int nFishs;
void InitFishGroup(HGE *pHge, int nfish);
void Render();
protected:
private:
};
#14
class B
{
A a1;
A a2;
A a3;
A a4;
A a5;
};
注意要声明一下哦
{
A a1;
A a2;
A a3;
A a4;
A a5;
};
注意要声明一下哦
#15
结论都还是比较不错
#16
如果对象B有参数该怎么办,比如class B(int,int),如何初始化?