C++相談室 part36
■ このスレッドは過去ログ倉庫に格納されています
0001v(^・^)v
NGNGただし質問の前にはFAQに一通り目を通してください。
テンプレートライブラリ(STL含む)に関する質問は
専用の別スレにお願いッス。
過去スレ、関連スレ、関連リンクなどは >>2-20 あたり
0153デフォルトの名無しさん
NGNG0154デフォルトの名無しさん
NGNG0155デフォルトの名無しさん
NGNG以降順位なし。
1位をC++(もしくはC),C#,JAVA,ActionScriptでタイとした理由。
・残念ながら現在OSで圧倒的シェアを占めているWindowsにおいて、
C#がMicrosoftの次世代主要開発言語として位置づけられていること。
・残念ながら(略)、C++/CLIが結構うまく.NET Frameworkを扱えるらしい
から、膨大な遺産を持っているC++(もしくはC)はこれから勉強するに
足る長期間生き残るだろうと予想されること。
・Windowsのサーバーサイドのプログラミングは今後.NETを用いたものに
移行すること。
・その他UNIXやLINUXの環境においてはまだしばらくはC++(もしくはC)が
開発の主流であり続けるであろうと予想されること。
・Webのクライアントサイドのプログラミングの主流がJAVAとActionScript
(Flash)であること。
VBは.NETになって、その意義(プログラム初心者がプログラムらしきものを
形だけでも作ることができる)を失っている。C#に置き換えられていくのでは
ないだろうか。
0156デフォルトの名無しさん
NGNG0157デフォルトの名無しさん
NGNGアセンブラも知ってるぞ。漫画だよな。
0158デフォルトの名無しさん
NGNGE8 FD FF
0159デフォルトの名無しさん
NGNG0160デフォルトの名無しさん
NGNG学術的な下積みって何?
駅弁大学で万年助手すること?
0161デフォルトの名無しさん
NGNGていうか>>153に同意
0162デフォルトの名無しさん
NGNG日本以外に行ったら三文字表記は今でも使われてるのですか。
??=include <iostream>
int main()
??<
int n??(1??)={10};
cout<<"Hello, World??/n"<<n??(0??)<<endl;
return 0;
??>
なんかすごいよね。
0163デフォルトの名無しさん
NGNG0164デフォルトの名無しさん
NGNG0165デフォルトの名無しさん
NGNGこんな風に考えているのが大勢いるんだろうね。
着眼点が下等すぎ。
0166デフォルトの名無しさん
NGNG釣られんな(w
ユーザライクな文字列処理を必要とする人がアセンブラに走るわけがない。
0167デフォルトの名無しさん
NGNGあの突っこむべきかどうか本当に必死に考えた結果、突っこみます
ここC++のスレです
0168デフォルトの名無しさん
NGNGなにいってんの?
0169デフォルトの名無しさん
NGNG0170デフォルトの名無しさん
NGNGclass A{
public:
virtual void Initialize( void* )=0;
};
class B : public A{
BStruct bs;
public:
virtual void Initialize( void* p){
bs = *(BStruct*)p;
}
};
こんな感じで渡しているのですが、中身の保証が全くありません。NULLチェックのみ
Cstruct, DStruct・・・といろんなサイズ・型の各派生先固有の構造体があります。
0171デフォルトの名無しさん
NGNGclass A{
public:
virtual void Initialize( void* )=0;
};
class B : public A{
BStruct bs;
public:
virtual void Initialize( void* p){
bs = *(BStruct*)p;
}
};
こんな感じに段落をつけてる(文の最初に空白を数行いれてる)のは
見易くするためだけ?
0172デフォルトの名無しさん
NGNGそれのどこが見やすいんだ?
0173デフォルトの名無しさん
NGNGdynamic_castとかCOMのIUnknown::QueryInterfaceみたいな仕組みを導入するとか。
つーか派生先で独自の初期化関数作ればいいじゃない。
0174デフォルトの名無しさん
NGNG受け渡しに使いたい派生クラス固有のオブジェクトをboost::anyかなにかで渡せば?
0175デフォルトの名無しさん
NGNG保証がないということは、
正しくなかった場合にどうしたいのかを
まず決めなければ話を始められない
0176デフォルトの名無しさん
NGNGbs=*dynamic_cast<BStruct*>(p); としても動作するようにいたるところ修正...とおもったけど
BStruct は構造体で無いとだめ?
0177デフォルトの名無しさん
NGNGdynamic_castに必要な条件を述べよ
0178デフォルトの名無しさん
NGNGわかんない。まわりくどい事いわないで教えろ
0179デフォルトの名無しさん
NGNG0180デフォルトの名無しさん
NGNG0182デフォルトの名無しさん
NGNGキミたちに幸せが来るように祈ってる
0183デフォルトの名無しさん
NGNG女なら品定めさせろ
男なら金くれ
0184デフォルトの名無しさん
NGNG0185デフォルトの名無しさん
NGNG0186デフォルトの名無しさん
NGNG_._
_|_|_|_ |_|_| / __ ___
| |_| |_|_| | ヽ
| /| | \ | ───一 |
|___ ノ | レ ヽ_ _ノ
_/__〃 | _|_ __
/ __ | .| / / ヽ
/ | | / / |
/ ヽ__ レ ノ \/ /
へ へ|\ へ √ ̄| へ
( レ⌒) |\ ( |\)| |/~| ノ ,__√ /7 ∠、 \ . 丶\ _ __
|\_/ /へ_ \) | | | |∠ | |__ | / ! | | |_〜、 レ' レ'
\_./| |/ \ .| |( ̄ _) | ) | | i | へ_,/ ノ ,へ
/ / ̄~ヽ ヽ. | | フ ヽ、 ノ √| | ! レノ | !. \_ ー ̄_,ー~' )
/ /| | | | | |( ノ| |`、) i ノ | | \_ノ ノ / フ ! (~~_,,,,/ノ/
| | | | / / | | . し' ノ ノ | | / / | |  ̄
\\ノ | / / | |___∠-". | | ノ / ノ | /(
\_ノ_/ / (____) し' ノ/ / / | 〜-,,,__
∠-''~ ノ/ (_ノ 〜ー、、__)
0187170
NGNG>QueryInterface
COMはあまり知らないのですが、そこまでするのはちょっと。。。と思いました。(自分で言い出しておきながらあれですが)
>dynamic_cast
dynamic_cast<B*>(ptrA)→InitializeB()ということですよね。なるほど。
>>174
boost::anyをためしに使ってみました。
virtual void Initialize ( const boost::any &s ){
try{
BStruct bs = boost::any_cast<BStruct>(s);
}catch( boost::bad_any_cast ){
・・・
上手く機能しているようですがこんな感じでいいのでしょうか。詳細は追って勉強してみます。
これでいってみようと思います。
>>175
正しくなければ戻り値をboolにしてfalseをreturnしてやるくらいで十分です。
どこまで保証したいのかがまったくわかりませんでしたね。失礼いたしました。(>>170でもきちんと動くのですから)
>>176
仮想関数がないとだめなんですよね。そうなると関数呼び出し時にdynamic_castしたほうがいいですね。
0188デフォルトの名無しさん
NGNGつまり、未定義ではなく何らかの保証をするってことだな。
0189170
NGNGそういうことですかね。
boost::anyを使用することによって少なくとも希望の型が渡されたことが保証できますね。
boost::any_castはtype_id で判定しているのですね。
今回の用途にはこれで十分だと思われます。
みなさんありがとうございました。
0190デフォルトの名無しさん
NGNGどんな場合なんでしょう?
スクリプトの実装くらいしか思いつきません
0191デフォルトの名無しさん
NGNG・コピー&ペースト
・アーカイブファイルからの読み込み
0192デフォルトの名無しさん
NGNGprintf("");
って一見何もしないように見えて厳密には一体何が起こってるんでしょうか?
これを書くとエラーが出ないのに省くとメモリ関係のエラーで強制終了でした
コンパイラはBCC32です5.5です
謎です 紐解いて下さい
0193デフォルトの名無しさん
NGNG引数をケツから積んでるかと
>これを書くとエラーが出ないのに省くとメモリ関係のエラーで強制終了でした
おそらく別の箇所でスタックを壊したりしてる予感
周りのコードを見直して見れ
0194デフォルトの名無しさん
NGNG""だって立派な文字列だ。
0195デフォルトの名無しさん
NGNG0196デフォルトの名無しさん
NGNG別の文字列に対してオーバーランな書き込みしてるとか
0197デフォルトの名無しさん
NGNG0198デフォルトの名無しさん
NGNGスタックの異常
0199デフォルトの名無しさん
NGNGあーおんなじ状況になったことがある
メモリまわりのバグなんだよね
不適切なメモリアドレスを操作していないかチェックしたほうがいいよ
0200デフォルトの名無しさん
NGNG0201デフォルトの名無しさん
NGNGそれが格納されるのはあたゆる初期値付き変数と同じところになる。(そうじゃない場合もあるが)
当然それの前の部分でオーバーランをしていたらクッションになってくれてることも考えられる。
0202デフォルトの名無しさん
NGNGつくっても良いものなのですか?なんかアホっぽい質問でスマソ
0203デフォルトの名無しさん
NGNG作りたかったら作ったら良いけど、
その関数をnamespaceに入れたらすむんでないけ?
0204デフォルトの名無しさん
NGNG単にズボラしたくなったとかで、使う人間(他人でも自分でも)がusing namespaceした時に
(例)play()やresume()とかよくありそうな名前がかち合うのではないかとも思ったのです。
Cの時のようにxxx_プレフィックス(gtk_somefuncとかssl_somefuncとか)付けるのもアレなので
クラスで囲んでおけばいいかなと思ったので。
何か勘違いしてたら指摘してくれると嬉しいです。一人でやってると分からんことが多いので。
0205デフォルトの名無しさん
NGNG0206デフォルトの名無しさん
NGNGJavaは名前空間グローバルな関数が作れないという事情はあるけど、
C++にもtraitsなんかがあるしね。
Effective C++にも、namespaceの代替手段として載っている。
だけどnamespaceの完全な代用には出来ない、ともね。
ただ、using namespaceを前提に考えるのはどうかな。
using hoge::hage; を使うのを推奨するけどね。
(using std::stringとして、ソース内ではstd不要のstringだけで使うとか)
0207デフォルトの名無しさん
NGNGクラスにする意味がないんだからこういう設計は絶対しないよ
0208デフォルトの名無しさん
NGNGtraitsという例をわざわざ挙げたのに。
0209デフォルトの名無しさん
NGNG0210デフォルトの名無しさん
NGNG0211デフォルトの名無しさん
NGNGそうだよ。
>>208はまだお風呂からでてシャツを着ただけの情況なのでしょ。残りはスッポンポン。
0212デフォルトの名無しさん
NGNG0213デフォルトの名無しさん
NGNG0214デフォルトの名無しさん
NGNGnamespace A{
typedef int type;
}
template<class T=A>
struct C
{
typedef typename T::type type;
};
このようには出来ないということかと。
0215デフォルトの名無しさん
NGNGデストラクタがprotectedになってるのですが、
なぜなのでしょうか?
0216デフォルトの名無しさん
NGNG""はサイズ1の配列。"\0"はサイズ2の配列。
0217デフォルトの名無しさん
NGNGサイズという単位はありません
0218デフォルトの名無しさん
NGNGサイズは単位じゃなくて次元では
0219デフォルトの名無しさん
NGNG「要素数」ならいいか?
0220デフォルトの名無しさん
NGNG0221デフォルトの名無しさん
NGNGC++では文字列リテラルはconst char[n]型である。
プログラミング言語C++第3版5.2.2「文字列リテラル」を参照
0222デフォルトの名無しさん
NGNGロケールが管理しているオブジェクトだから。
0223デフォルトの名無しさん
NGNGVC7でPROTECTEDマクロ=protectedになった。
意味わからんね。
0224Ruby >>>>>>>>>>>> C++++++
NGNG0225デフォルトの名無しさん
NGNG0226デフォルトの名無しさん
NGNGインクリメント
0227デフォルトの名無しさん
NGNGWSH
0229デフォルトの名無しさん
NGNG0230デフォルトの名無しさん
NGNGお前Rubyの事ほとんど知らない奴だろう?
0231超絶Rubyhakka−
NGNGきっと生姜区制だろう。
0233デフォルトの名無しさん
NGNG0234デフォルトの名無しさん
NGNG>だれかCをBASIC風に機能削減したバージョンのC--を作ってください。
Cって言語の基本的なことはとても少ないと思うんだが…
0235デフォルトの名無しさん
NGNGスレ違いだが、C--という言語はもうある。
http://www.cminusminus.org/
コンパイラのバックエンド用なので、人間様用の言語ではないが。
0236デフォルトの名無しさん
NGNGhttp://www.itmedia.co.jp/enterprise/articles/0410/05/news016.html
0237デフォルトの名無しさん
NGNGアイデアを特許にする人たちは俺から見たらお気楽だけど。
実際に特許の部分を有効活用して開発する人たちの血と汗と涙の結晶は特許の前では意味を
なさなくなるんだからやってらんないのでわ。
ま〜勝手にアイデアを使われて怒るのは分るけど
だからといって、訴訟を起こしての損害賠償が高すぎ。
今日の特許の乱立実態だからこそ、損害賠償額のルールを決めたほうがいいような。
もしかしてガイシュツだったりする。
0238デフォルトの名無しさん
NGNGポインタの管理を全て auto_ptr が面倒見るから利点があるのだと思うのですが
0239デフォルトの名無しさん
NGNG生ポインタを引数に取る関数とか呼び出せないじゃん
0240デフォルトの名無しさん
NGNG>Kodakの特許はWang Laboratoriesのイメージングソフトウェア部門が開発した技術を
>Kodakが1997年に買い取ったもので、2個のソフトウェアが協調動作する技術、
>つまりオブジェクト指向プログラミングのキーコンセプトであり、
>ユーニス氏によれば、1960年代に開発されたSimulaコンピュータ言語にまでさかのぼることができるという。
公知で特許成立しないんじゃないの? 解説よろしく
0241デフォルトの名無しさん
NGNG逆にそれが特許侵害と認められるとCなどの非OOのコードすら危うくなってくるわけだ・・・。
0242デフォルトの名無しさん
NGNGちょっと見てみたけど、もっと抽象的なレイヤーでの特許みたい。
OOベースのRPC (Remote Method Invokation の類) と、ORB の基本概念あたりをカバーしてる。
出願時点(1993 年)に既に公知だったような気がするけど・・・
0243デフォルトの名無しさん
NGNG0244デフォルトの名無しさん
NGNGhttp://www.javalobby.org/thread.jspa?forumID=61&threadID=14434&start=0&mode=flat
0245デフォルトの名無しさん
NGNG生ポインタに限定って時点でSTLじゃねえな
0246デフォルトの名無しさん
NGNGソースにusing namespace xxx;を使うのとでは意味が違うんでしょうか?
0247デフォルトの名無しさん
NGNGどんなしょぼい参考書にも必ず書いてあると思うが。
0248デフォルトの名無しさん
NGNG効果範囲はスコープ内。
0249デフォルトの名無しさん
NGNGヘッダはグローバルスコープで、
ソースだとそのファイルがスコープになるということかしら?
0250デフォルトの名無しさん
NGNG}
まで。普通のauto変数と一緒。
0251デフォルトの名無しさん
NGNGC++にヘッダとソースの区別なんか無いよ。
0252デフォルトの名無しさん
NGNG■ このスレッドは過去ログ倉庫に格納されています