??xml version="1.0" encoding="utf-8" standalone="yes"?>
静态数据成员在文g范围?font color="#ff3300">必须q行一ơ初始化。类的public静态成员可以通过cȝM对象讉KQ也可以用二元作用域分LW通过cdq行讉K?font color="#ff3300">cȝprivate和protected 静态成员必通过cȝpublic成员函数或类的友元访?/font>?font color="#ff3300">即ɾcL有对象,但仍然有静态成员。类没有对象Ӟ要想讉Kpublic静态类成员Q只需在成员数据名前加上类名和二元作用域分辨符(::).要在cL有对象时讉Kprivate或protected 静态类成员Q则需要提供一个public静态成员函敎ͼq在调用函数时在函数名前面加上类名和二元作用域分辨符?/font>
#File Test.h
#ifndef TEST_H
#define TEST_H
class Test
{
public:
Test( const char * , const char * );
~Test();
const char *GetFstString() const;
const char *GetLstString() const;
static int GetCount();
private:
char * strFst;
char * strLst;
static int count;
};
#endif
---------------------------------------------------------------------------------
#File Test.cpp
#include <iostream>
using std::cout;
using std::endl;
#include <cstring>
#include <cassert>
#include "Test.h"
int Test::count = 0;
int Test::GetCount() { return count ; }
Test::Test( const char * sFst, const char * sLst )
{
strFst = new char[ strlen( sFst ) + 1 ];
assert( strFst != 0 );
strcpy( strFst, sFst );
strLst = new char[ strlen( sLst ) + 1 ];
assert( strLst != 0 );
strcpy( strLst, sLst );
count++; // inc static count
cout << " Test cons for " << strFst
<< " " << strLst << " called. " << endl;
}
Test::~Test()
{
cout << " ~Test() called for " << strFst
<< " " << strLst << endl;
delete [] strFst;
delete [] strLst;
count--;
}
const char * Test::GetFstString() const
{
return strFst;
}
const char * Test::GetLstString() const
{
return strLst;
}
--------------------------------------------------------------------------------
#File: main.cpp
#include <iostream>
using std::cout;
using std::endl;
#include "Test.h"
int main()
{
cout << "before cons is "
<< Test::GetCount() << endl; // use class name
Test *pTest1 = new Test( "FstTest1", "LstTest1" );
Test *pTest2 = new Test( "FstTest2", "LstTest2" );
cout << "after cons is "
<< pTest1->GetCount(); //using instan
cout << "\n\nTest1: "
<< pTest1->GetFstString()
<< " " << pTest1->GetLstString()
<< "\nTest2:"
<< pTest2->GetFstString()
<< " " << pTest2->GetLstString() << "\n\n" << endl;
delete pTest1;
pTest1 = 0;
delete pTest2;
pTest2 = 0;
cout << "num after deletion is "
<< Test::GetCount() << endl;
return 0;
}
-------------------------------------------------------------------------------------------
Result:
before cons is 0
Test cons for FstTest1 LstTest1 called.
Test cons for FstTest2 LstTest2 called.
after cons is 2
Test1: FstTest1 LstTest1
Test2:FstTest2 LstTest2
~Test() called for FstTest1 LstTest1
~Test() called for FstTest2 LstTest2
num after deletion is 0
Testcd没有对象Ӟ仍然可以引用count成员Q但是只能通过调用静态成员函数GetCount()完成.
没有实例化的对象Q一定是用类名调用Test::GetCount(),如果有实例化的对象,则可以用pTest1->GetCount()
调用。我们公司明规定,所有静态成员函数只能调用类名句柄,不能调用对象句柄Q我觉得q样很好?/font>
q有一点,如果成员函数不访问非静态数据成员和成员函数Q可以将成员函数声明为静态,与非静态成员函C同的是,静态成员函数没有this指针Q因为静态类数据成员和成员函数是独立于类对象而存才的?/font>
关于断言(assert) , assertcd在cassert头文件中定义。用于测试条件|注意assert不运行Q何析构函数即可中止程序执? assert不一定要在调试完成后删除Q只需在程序文件开?通常可以在编译器选项中指?插入语句
#define NDEBUG
]]>
以逗号分割?br />
#include <iostream>
using std::cout;
using std::endl;
class Test
{
public:
Test(int i = 0, int j = 1 );
void addon() { count += idx; }
void print() const;
private:
int count;
const int idx;
const int idy;
};
Test::Test( int i, int j )
:idx( j, i ), idy( j, j )
{
count = j;
}
void Test::print() const
{
cout << "count= " << count
<<", idx = " << idx
<<", idy = " << idy
<< endl;
}
int main()
{
Test Test1( 20, 7 );
cout << "Before doing addon: ";
Test1.print();
for ( int k = 0; k < 3; k++ )
{
Test1.addon();
cout << "After addon " << k + 1 << ":";
Test1.print();
}
return 0;
}
result:
Before doing addon: count= 7, idx = 20, idy = 7
After addon 1:count= 27, idx = 20, idy = 7
After addon 2:count= 47, idx = 20, idy = 7
After addon 3:count= 67, idx = 20, idy = 7
]]>
也发一灌水文章,它对我帮助很大。不是我写的Q是朋友发给我的。我也加了自q一些理?br />
诸葛?/span>54岁时写给?/span>8?
儿子诸葛ȝ《诫子书》,只用了短短八十六字,但是对于为学做h有精而且具体的忠告。一千八癑֤q前的智慧,在今天的U技时代Q仍然有非常好的参考h
倹{以前听Q“真正的智慧Q可以超时I,历久常新。”初听不知所以,现在觉得所a甚是。让我们一?st1:personname w:st="on" productid="向诸葛亮">向诸葛亮老师学习十堂课,在变局中安w立命,在逆境中找到力量?/span>
《诫子书?/font>
夫君子之行,靜以修nQ儉以養P非澹泊無以明志,非寧靜無以致遠。夫孔R靜也Q才須學也;非學無以廣才Q非志無以成學。怠慢則不能勵_,險躁則不能冶性。年與時馻I意與歲去Q遂成枯落,多不接世。悲守窮廬,復何及Q?br />
W一课:宁静的力?/span>
“静以修w”、“非宁静无以致远”、“学静也”。诸葛亮忠告孩子宁静才能够修养n心,静思反省。不能够静下来,则不可以有效的计划未来,而且学习的首要条Ӟ是有宁静的环境。现代h大多数终日忙,你是否应在忙׃静下来,反思h生方向?
W二课:节P的力?/span>
“P以养德”。诸葛亮忠告孩子要节俭,以培养自q徯。审慎理财,量入为出Q不但可以摆p债的困扰Q更可以q着U律的简朴生z,不会成ؓ物质的奴隶。在鼓励消费的文明社会,你有没有惌节P的好处呢Q?br />
W三课:计划的力?/span>
“非Ҏ无以明志”、“非宁静无以致远”。诸葛亮忠告孩子要计划h生,不要事事讲求名利Q才能够了解自己的志向,要静下来Q才能够l心计划来。面Ҏ来,你有理想吗?你有使命感吗Q你有自q价D吗?
W四课:学习的力?/span>
“夫学须静也”、“才d也”。诸葛亮忠告孩子宁静的环境对学习大有帮助Q当焉合专注的q静心境Q就更加事半功倍。诸葛亮不是天才论的信徒Q他怿才能是学习的l果。你是没有全心全力的学习Q你是否怿努力才有成就呢?
W五课:增值的力量
“非学无以广才”、“非志无以成学”。诸葛亮忠告孩子要增值先要立志,不愿意努力学习,׃能够增加自己的才qӀ但学习的过E中Q决心和毅力非常重要Q因为缺乏了意志力,׃半途而废。你有没有想q,一鼓作气的人多Q坚持到底的人少的道理呢Q?br />
W六课:速度的力?/span>
“怠慢则不能励_䏀。诸葛亮忠告孩子凡事拖g׃能够快速的掌握要点。计机时代是十倍速的时代Q样样事情讲求效率,想不C千八癑֤q前的智慧,也一样不谋而合。快Z步,理想p实现。你有没有想q,有更多时间去修正及改善,以达成你的h生目标呢Q?br />
W七课:性格的力?/span>
“险w则不能冶性”。诸葛亮忠告孩子太过急躁׃能够陶冶性情。心理学家说Q“思想影响行ؓQ行为媄响习惯,习惯影响性格Q性格影响命运。”诸葛亮明白生命中要作出U种qQ要qQ也要冶性。你要提升自己性格的品质吗Q?br />
W八课:旉的力?/span>
“年与时驰”、“意与岁厠Z。诸葛亮忠告孩子时光飞逝,意志力又会随着旉消磨Q少壮不努力Q老大徒伤Ԍ旉理是个C人的观念Q细心想一惻I旉不可以被理Q每天二十四时Q不多也不少Q惟有管理自己,善用每分每秒。请你想一惻I你有y跎岁月吗?
W九课:惌的力?/span>
“遂成枯落”、“多不接世”、“悲守穷庐”、“将复何及”。诸葛亮忠告孩子时光飞逝,当自己变得和世界pQ才悲叹y跎岁月Q也于事无补。要懂得居安思危Q才能够临危不ؕ。想象力比知识更有力量。你有没有从大处着惻I处着手,脚踏实地Q规划自q人生呢?
W十课:_的力?/span>
以上诸葛亮写l儿子的一信Q只用了短短八十六字Q精C递了具体的讯息。我怿_的表达源于清晰的思想Q长大论的内容Q容易o人生厌,_沟通更有效果。你懂得a之有物地_沟通吗Q?/span>
从以上的十堂课之中,你能够找C点启发吗Q请你百忙之中静下来Q用下面的题目向你的人生提问Q在改变中不断改善?/span>
不要问:自己得到些什么?应该问:自己付出q什么?
不要问:自己的地位如何?应该问:自己的心地如何?
]]>
他们分别是: ȝ理类Q?L新和渲染
撞部分,
目前使用q泛的是使用矩Ş框来q行_略的碰撞检?/span>
几种主要的碰?
球与^?/font>Q?按照角度Q速度Q加速度定出轨迹q动
球与砖?/font>Q?删除砖块Q重要的是从内存中删除)Q?/span>
球与宝?/font>Q? 更改球的相兛_性, 删除宝物Q重要的是从内存中删除)?/span>
球与墙?/font>Q?
按照角度Q速度Q加速度定出轨迹q动
砖块与砖?/font>Q?一些会 按照角度Q速度Q加速度定出轨迹q动Q?一些不予理?/span>
撞理只用一个管理器完成Q只是要提供不同的接口和容器? ?/span>
小球与砖块Q或宝物发生撞Ӟ可能是一对多Q也可能是多对多。这个可以在球理器内攄一个指针,用来指示当前正在判断的砖块。进行检时Q就把这个指针指向的砖块传递给砖块理器进行检。然后改变这个指针。直到指针回到容器头部?/span>
属性资源的理
当然全部由外部资源属性文件读取,包括Q小球,砖块Q宝物,背景{等各个斚w的属性。完全静态读取,好处是当物品被创建时Q读入属性|如果已经初始化,׃用属性倹{?/span>
目前M框架Q先惛_q里?大体是这样了Q具体的q有很多Q毕竟管理的资源多,逻辑也相对复杂?/span>
7。关卡背?span style="">Q?/span>景物不止一层。是多层。这需要ؓ每一个景物,讄一个层ơ倹{(哪一U游戏都跑不了)
8。各U需要实现的ҎQ包括:
8? 球撞击墙壁
8? 球撞击砖块爆炸
8? 砖块的各U特?/span>
8? 球飞行的各U特?br />
8? 背景随机的动ȝ?br />1Q?span style="font-family: "Times New Roman"; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"> 可能多的属性由脚本文gQ?/span>XML文gQ来实现
2Q?span style="font-family: "Times New Roman"; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"> 可能的实现对象模块化,插g化?/span>
3Q?span style="font-family: "Times New Roman"; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"> 资源处理上做到脚本化。这是肯定的了,q么多物品,没有脚本理Q那是N?/span>
|
|