C++动态生成对象的使用
2013-06-01 09:45
134 查看
#include
using namespace std;
class GamePlayer
{
public:
static const
int NUM_TURNS = 5; //比较老的编译器不支持这种写法
int
scores[NUM_TURNS];
};
//const int GamePlayer::NUM_TURNS = 10;
int main( void )
{
GamePlayer
*player = new GamePlayer();
cout
<<
(*player).NUM_TURNS<< endl;
delete
player;
return
0;
}
编者注:
注意红色文字处,如果将其改为: * player.NUM_TURNS会出现: ”
.NUM_TURNS “左边必须有 类/结构体/联合体 的错误提示。
出现这个错误提示的原因是:player保存的是一个GamePlayer类的对象地址,而‘*’运算符是右结合型,故先进行player.NUM_TURNS运算,然后进行'*'运算,即等价于
*( player.NUM_TURNS )。
对于player.NUM_TURNS语句,'.'运算符的左边应该是一个对象名,不应该是对象的地址。
所以,以上错误的出现是没有分清“*”运算符的使用以及弄懂指向对象的指针的使用方法。
using namespace std;
class GamePlayer
{
public:
static const
int NUM_TURNS = 5; //比较老的编译器不支持这种写法
int
scores[NUM_TURNS];
};
//const int GamePlayer::NUM_TURNS = 10;
int main( void )
{
GamePlayer
*player = new GamePlayer();
cout
<<
(*player).NUM_TURNS<< endl;
delete
player;
return
0;
}
编者注:
注意红色文字处,如果将其改为: * player.NUM_TURNS会出现: ”
.NUM_TURNS “左边必须有 类/结构体/联合体 的错误提示。
出现这个错误提示的原因是:player保存的是一个GamePlayer类的对象地址,而‘*’运算符是右结合型,故先进行player.NUM_TURNS运算,然后进行'*'运算,即等价于
*( player.NUM_TURNS )。
对于player.NUM_TURNS语句,'.'运算符的左边应该是一个对象名,不应该是对象的地址。
所以,以上错误的出现是没有分清“*”运算符的使用以及弄懂指向对象的指针的使用方法。
相关文章推荐
- C++对象动态生成(Dynamic Create)的完善版本
- [Unity&精灵&对象]使用Instantiate,Resource.Load动态生成物体
- 【转载整理】eclipse 开发c/c++、Java使用JNI调用C程序、生成64位dll动态链接库
- C++如何动态的生成对象详解
- C++对象动态生成(Dynamic Create)的简单实现
- C++对象动态生成(Dynamic Create)的简单实现
- C/C++使用Lu脚本中的动态对象lu
- C++动态对象生成技术
- 数据层使用Server对象;动态生成控件多文件上传
- log4j2 不使用配置文件,动态生成logger对象
- 仿MFC实现c++按名动态创建对象之续(瘦身以及解决其在dll中使用的问题)
- log4j2 不使用配置文件,动态生成logger对象
- log4j2 不使用配置文件,动态生成logger对象
- 【cocos2d-x】C++利用类名动态生成对象,类似于Objective-C Class *aclass = [object class]
- 关注C++细节——动态生成对象初始化细节
- log4j2 不使用配置文件,动态生成logger对象
- PB8调用使用C++与C#分别编写生成解压缩带有密码的zip压缩文件的动态链接库dll(部分内容转自互联网)
- js 动态生成json对象、时时更新json对象
- 使用Element对象模拟车辆动态行驶
- 使用WPF动态生成Code 39条形码