忍者ブログ

粘土小屋

ネトゲとプログラムのブログ
2024
04,28

«[PR]»

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

2010
05,26

«1日»

必要な時に一部だけ引っ張ってこれる、
そういうデザインの仕方はないものでしょうか。

例えばサウンド関連です。
サウンドは多くのオブジェクトを介して
同じ物が使われたりすると思います。

そう言った場合、
オブジェクトにサウンドクラスを持たせると
どう処理するにしろ、
かなり面倒なことになるでしょう。

逆に、グローバルな場所に置くとしても、
依存関係が多岐に渡ってしまい
コンパイル速度など
色々な部分でのパフォーマンスが落ちてしまうと思います。

一定種類ごとに別のファイルにして、
グローバルな空間に置いておくのが今のところ良さそうに思えるのですが
ファイルを多く作らなければならなくなり、
ベストとも言い難いです。

やはり考え抜いてオブジェクトにサウンドクラスを持たせるのが
一番よくなるとは思うのですが、
パッと思いつくようなエレガントな方法が思いつきません。

 
PR
2010
05,25

«1日»

shared_ptrをこちらのタイミングで破棄したい場合はreset()
実体をコピー渡ししたい場合は

SomeClass someClassSbt ;
std::tr1::shared_ptr<SomeClass> someClassPtr ;

someClassPtr =
std::tr1::shared_ptr<SomeClass>
(new someClass(someClassSbt)) ;

これで出来ると思います。
便利ですねえ。
 
2010
05,24

«1日»

assert(false)
よりは

assert(0)
の方が個人的には奇麗だと思っています。

しかし代わって
while(1)
よりも

while(true)
の方がなんとなくきれいな気がします。

false == 0 ですが
true == 1 とも限らないという所が
関連しているのかなと思います。
2010
05,23

«4日»

2回deleteはデバッグエラーになりますよね。

しかしそのポインタがnewされているかどうかがわからないけども
deleteしたい場合というのは有ると思うのですが

newとdeleteは対となっているべき等と
よく言われています。

上の例の場合、
それをやろうとするなら

-*- -*-

if(pointer == 0)
{
//ポインタが0ならdeleteしない
}
else
{
delete pointer ;
pointer = 0 ;
}

-*- -*-

こんな構造をマクロか何かで
指定することになると思います。

newとdeleteは対となっているべき
という考え方からすれば、これは悪手な感じがするのですが
どうなんでしょう。
 
-*- -*-

書いた5分後くらいに
「shared_ptrを使えば全て解決する」
ということに気付いてしまいました…。
2010
05,19

«0日»

-*- -*-

#include <memory>
#include <vector>

using namespace std ;

enum eHOGE
{
HOGE_A,
HOGE_B,
HOGE_LAST
}

class A
{
};

int main()
{
vector<tr1::shared_ptr<A>> a ;

//pattern:1
//a.push_back(tr1::shared_ptr<A>(new A(/*HOGE_A*/))) ;
//a.push_back(tr1::shared_ptr<A>(new A(/*HOGE_B*/))) ;

//pattern:2
//a.resize(HOGE_LAST) ;
//a.at(HOGE_A) = tr1::shared_ptr<A>(new A(/*HOGE_A*/)) ;
//a.at(HOGE_B) = tr1::shared_ptr<A>(new A(/*HOGE_B*/)) ;

return 0 ;
}

-*- -*-

そんな場合は望ましくないという突っ込みが有りそうですが、
固定長のvectorを使う場合に、
resizeしてから使うのか、push_backしていくのか
という微妙な疑問がありました。

後それと、

tr1::shared_ptr<class Hoge> 

が非常に長ったらしいので
typedefをするとして、
どういう名前にするかも若干疑問です。

それとそれと、
今回初めてソースらしきものを張ったわけですが、
シンタックスハイライトの仕方がわからないです…。
他のブログだとよく見かけるのですが。

[2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12]


« 前のページ:: 次のページ »
カレンダー
03 2024/04 05
S M T W T F S
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
リンク
最新記事
(05/08)
(09/20)
(09/02)
(08/30)
(08/26)
プロフィール
HN:
粘土男
性別:
男性
自己紹介:
レッドストーン、ルシエルブルー、
アラド戦記、ラテール、エルソード、
ファンタジーアースゼロ、などを
せこせことやっております。
プログラミングは、修練中です。

twitter:@rosukaruklame

Powered by Ninja.blog * TemplateDesign by TMP
忍者ブログ[PR]