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