■過去ログ置き場に戻る■ 1- 前250 次250 最新50


[memo] "9999999999_00.html#R20" という感じで、URLの最後に "#RレスNo" を追加すると幸せになれます。

C++相談室 part6
501 名前:デフォルトの名無しさん :02/04/30 01:34
500げとずざー

ん?失敗か。

何みてんだゴルァ!!

Borland C++ Builder 6をよろしくね☆
http://www.borland.co.jp/cppbuilder/

502 名前:465 :02/04/30 01:35
なんとなく分かったよーな気がします。490に感謝。
typedef int(_stdcall *KANSUMEI)(char* a);
↑こーゆーのはまだ意味わからんですが、
漏れがんばる。


503 名前:デフォルトの名無しさん :02/04/30 01:36
   ||
   ||
   ||
   || スルスル
   ||
 ∧||∧
(  ⌒ ヽ 神です・・・・  
 ∪  ノ 
  ∪∪


504 名前:476,490 :02/04/30 01:37
>>502
感謝されても困るんだが。
typedefの構文を間違えるような奴だし(藁

505 名前:500 :02/04/30 01:37
カミガ オリテ
キタキタキタ━━(゚∀゚;)━━!!!


なんでも俺に聞け!!任せろ

506 名前:デフォルトの名無しさん :02/04/30 01:39
>>505
お休み

507 名前:デフォルトの名無しさん :02/04/30 01:43
505は仕事があるのに2chに逃避しているに500カノッサ。


508 名前:465 :02/04/30 01:47
>>504
漏れアセンブラしか分からんす。
高級言語はどーも苦手。
と言ってみたいという願望を書いてみるテスト。

509 名前:デフォルトの名無しさん :02/04/30 01:51
>>508
むきゃー!!
く・や・し・いぃぃぃーーーっ!!!

510 名前:デフォルトの名無しさん :02/04/30 01:52
おちつけ

511 名前:デフォルトの名無しさん :02/04/30 01:54
classがウマー(´Д`)
OOがウマー(´Д`)

512 名前:Ð ë á t h ¹³ :02/04/30 01:56
   ||
 ∧||∧
(  ⌒ ヽ 500が消えたので 
 ∪  ノ  上へまいりま-す・・・
  ∪∪  

   ⌒
   ⌒

513 名前:465 :02/04/30 01:57
ムヒヒ。

514 名前:デフォルトの名無しさん :02/04/30 02:04
例外処理のメリットっていまいちわからないんですが・・・。
誰かおしえてプリーズ!

515 名前:デフォルトの名無しさん :02/04/30 02:07
>>514
何らかのエラーが生じた時、通常は戻り先でelse ifの連続ショーが始まったり、
エラー処理があちこちでバラバラに分散してしまうが、例外にすると、エラー
処理を一カ所にまとめられるので見やすい。バグが出にくい。等々

516 名前:デフォルトの名無しさん :02/04/30 02:08
Cはやったことありますか?
Cのエラー処理と比べるとだいぶウマーな漢字になってます

517 名前:465 :02/04/30 02:11
>>514
教えてあげたいところですが、
例外処理の意味すら分かりません。
出直してきます。


518 名前:デフォルトの名無しさん :02/04/30 02:16
>>514
何十にもネストしたループを脱出す時はgoto使うと便利でしょ?
同じように、関数呼び出しから一気に巻き戻すのに例外は便利なのだよ。
C言語では関数外にジャンプするときはsetjumpとlongjumpを使うが、こ
れではデストラクタが呼ばれないので例外って仕組みが必要なわけよ、オーケイ?

519 名前:デフォルトの名無しさん :02/04/30 02:16
>>514
Cで言うと、longjmp、setjmpとよく似ている。これらをよく観察すれば、
例外の意味も少しわかると思います。

520 名前:デフォルトの名無しさん :02/04/30 02:18
>>518-519
割り込みスマソ
longjmpに似ているということは、一度通った場所にしか戻れないの?

521 名前:デフォルトの名無しさん :02/04/30 02:19
>>514
エラーの取り残しがないって事かな。
戻り値で判定する場合、ifでチェックし忘れたエラーコードは検出できないけど、try/catchなら、チェックしなかったエラーはより上位のcatchに飛ばされるから、必ずどこかでつかまるよね。

522 名前:デフォルトの名無しさん :02/04/30 02:22
>>519
どちらかと言えば、longjmp,setjmpで例外の真似事ができるって方が近いかな。
例外は戻るのではなく、投げるものなのでcatchがあるところまで間をすっ飛ばし
ます。先月のインターフェースにCで実装する例外って記事があったよ、確かに、
longjmpとsetjmp使ってたはず。

523 名前:522 :02/04/30 02:23
>>519でなくて>>520ダタ

524 名前:デフォルトの名無しさん :02/04/30 02:27
>>522
そそ。関数から関数を多重的に呼び出している時、returnで戻ろうとすると
プログラムが超複雑になりますよね。それを例外で一足飛びに戻る。
もしくは途中まで戻って、ある程度仕事をしてから、また再throwする、など。

525 名前:514 :02/04/30 08:05
様々なレスありがとうございます。

私の場合、プログラムの実行継続が難しいときに
例外を投げるという使い方をしようとしてました。
が、STLのbad_allocくらいしかcatchするものが無い・・・。
例外処理に払うコストが妥当とは思えないわけです。

何か、こういう例外の使い方がウマい!とかありませんでしょうか。

526 名前:デフォルトの名無しさん :02/04/30 08:17
本でも読めYO!

527 名前:デフォルトの名無しさん :02/04/30 10:05
複雑なファイル入力操作とか、いちいちエラーチェックして
ファイルクローズして返すのが面倒くさいから、入力処理と
入力ストリームのエラーチェックを同時に行う関数を用意して、
エラー発生時に例外を投げるようにしてます。

528 名前:デフォルトの名無しさん :02/04/30 11:59
>>527
それって、?stream.exception(mask) じゃだめ?

529 名前:デフォルトの名無しさん :02/04/30 13:09
>>527>>528
ぁ・・ホントですね、そのまんまの機能です。
知りませんでした。_φ(.._)


530 名前:デフォルトの名無しさん :02/04/30 15:09
>>528
なにそれ?

531 名前:デフォルトの名無しさん :02/04/30 16:32
domain_errorって何ですか?
例外型の他は概ね利用方法が思い浮かぶのですが、
domain_errorだけどうしても使い道がわからないのですが。

532 名前:528 :02/04/30 16:38
>>530
exceptions(iostate) で、ストリームがthrowする例外を選択する。

ifstream file(filename);
file.exceptions(failbit|batbit);

これ以降の操作で失敗したり、ストリームが壊れたりしたらfailure例外が投げられる。
上の例だけでもコンストラクタでオープン失敗してたときは、
exceptions()の呼び出しが例外投げる。

533 名前:デフォルトの名無しさん :02/04/30 16:46
>>531
Thrown by the library, or by you, to report domain errors (domain in the mathmatical sense).

googleのトップにでてるじゃねぇか。

534 名前:デフォルトの名無しさん :02/04/30 16:51
あー、数値計算で発生させる例外ですか。
ま、使用方法が思い浮かばないのは漏れの数学知識が
皆無だからでしょうね。

535 名前:デフォルトの名無しさん :02/04/30 19:11
template<int NAME[]=0>class X{
public:
X(){
cout<<NAME[0]<<endl;
}
};
これって不可能?class自体はエラー出無いんだけど、実体とると
こけてしまう。

536 名前:デフォルトの名無しさん :02/04/30 19:14
NAME が 0 ならこけるんでない?

537 名前:デフォルトの名無しさん :02/04/30 19:23
>>536サンクス
template難しいわ。例えば、

template<char* n>class X{
public:
X(){
cout<<n<<endl;
}
};

void main(void)
{
X<"aswe"> x;
}
なんて言うか、これってできないの?それても俺の書き方がおかしい?

538 名前:デフォルトの名無しさん :02/04/30 19:46
文字列リテラルは直にできません
外部リンケージを持ったchar[]を渡しましょうや
ていうか入門書にそんくらい書いてあるだろ。

539 名前:デフォルトの名無しさん :02/04/30 20:03
>>537
規格書読めよ。

14.3.2 Template nontype arguments
2 [Note: A string literal (2.13.4) is not an acceptable template argument
because a string literal is an object with internal linkage. (後略)

540 名前:デフォルトの名無しさん :02/04/30 20:09
>>538>>539
を、サンクス。いやぁ、templateに手を出したの最近だからさ
勝手が分からなくてね。もちっと修行してくるわ。

541 名前:初心者にもなってない :02/04/30 22:04
プログラミングを勉強したいと思っているのですが
候補としては「C」か「C++」なのですが
どちらのほうがいいんですか?
できれば長所短所をおしえてもらいたいのですが。

542 名前:デフォルトの名無しさん :02/04/30 22:05
CをやってからC++
それ以外に選択肢は無い。

543 名前:デフォルトの名無しさん :02/04/30 22:06
1 プログラミングを勉強したい
2 作りたい物があって、そのためにプログラミングを勉強したい

1ならJavaかC#にしておけ。
SchemeとかMLでもいいが、勉強結果が後々使い回し出来ないと思った方がいい。

2ならC++を勧めておくが、出来るなら他言語を勧める。

544 名前:デフォルトの名無しさん :02/04/30 22:19
>>543
で、Cは?
問題外?

私は「プログラミングを勉強したい」という理由ならCを薦めるね。

545 名前:デフォルトの名無しさん :02/04/30 22:24
>>544
たしかにC勉強して身に付くこともあるが、
今から始める人にそんな低レベルな概念から身につける必要は無いと考える。
もちろん、分野によってはCは必須だが。

546 名前:デフォルトの名無しさん :02/04/30 22:33
もっと低レベルなアセンブラから勉強するのが正解(w

547 名前:デフォルトの名無しさん :02/04/30 22:35
アセンブラやらんでいいからコンピュータの基礎概論から勉強してくれよ。
それだけだとつまらんはずだから、プログラミングと平行で。

独学でプログラムだけやってもろくなもんでてこない。


548 名前:デフォルトの名無しさん :02/04/30 22:38
(´-`).。oO(プログラミングの勉強にC… どこかで見たぞこいつ)

549 名前:デフォルトの名無しさん :02/04/30 22:42
>>541
思い切ってC++にチャレンジしてみよう!


550 名前:デフォルトの名無しさん :02/04/30 22:45
>>548
鏡見れば思い出すかも

551 名前:デフォルトの名無しさん :02/04/30 23:17
>>542さんの通りやれ
王道を突き進め

552 名前:544 :02/04/30 23:45
>>545
低レベルかもしれないけど、言語仕様が小さいから勉強にはちょうど良いかなと。

>>548
多分人違い。

553 名前:デフォルトの名無しさん :02/05/01 00:45
「プログラミングの勉強をしたい」っていう理由なら、Cはダメっていう意見も多いね、推薦図書スレあたりで。
計算機科学をまじめにやるならScheme+SICP
作って動かしてみて楽しいのがいいならHSPやJavaScript
作りたいものの規模が大きそうならJava
シューティングゲームとかならC/C++
って感じか。

いずれにしても、身近に詳しい人がいて、いつでも質問できるのが理想、ですかね。

554 名前:デフォルトの名無しさん :02/05/01 00:48
文系か理系かでどっちからやったらいいかってちがうんでないかな。
文系ならオブジェクト指向はわかり易いものだろうが、理系は多態性
を追っかけにくいとかいうようだ。本人のバックグランドをキボーン。

555 名前:デフォルトの名無しさん :02/05/01 00:56
俺は理系だがどちらかというとOOのほうが好み。
thisとかselfの概念があった方がやりやすい。

556 名前:デフォルトの名無しさん :02/05/01 01:00
俺は理系だがOOの方が好み。
どちらかというとOO向け言語にある仕組みや仕掛けが好み。


557 名前:デフォルトの名無しさん :02/05/01 01:11
俺は理系だがOOの方が好み。
Genericsマンセー

558 名前:デフォルトの名無しさん :02/05/01 01:12
>>557
GenericsはOOちゃうやろ。

559 名前:デフォルトの名無しさん :02/05/01 01:14
理系と言っても情報系・数学系とよりハード寄りなその他ではまた傾向が違うのかも。

560 名前:デフォルトの名無しさん :02/05/01 02:34
動的型付けのOOPLは、まんまGenerics。

561 名前:デフォルトの名無しさん :02/05/01 05:14
超初心者的な質問で申し訳ないのですが
(明示的)インライン関数やテンプレートを使うと

関数名 はすでに オブジェクトファイル名 で定義されています

と言われてしまいます。
いくつかの .obj に分けてコンパイルしているので、確かにそれぞれの .obj に重複定義されているのですが、こういうやり方はおかしいのでしょうか?
(別々にコンパイルしているので #ifndef --- は効きません)

普通はどうするものなのでしょう?

562 名前:デフォルトの名無しさん :02/05/01 05:33
>>561
ヘッダに全部書いてそれぞれインクルード、の逃げ解決が普通かと。

563 名前:デフォルトの名無しさん :02/05/01 06:17
// c.h
template <class T>
class C {
public:
void func();
};
// c.cpp
#include "C.h"
template <class T>
void C<T>::func()
{
return;
}
// main.cpp
#include "C.h"
int main()
{
C<int> c;
c.func();
return 0;
}

VC6.0でこれをコンパイルすると
「error LNK2001: 外部シンボル ***** は未解決です」
ってエラーが出るんですけど、よくわかりません。
いまは、c.cppの内容をc.hの下に書いていますが、
どうにか上のファイル構成で、コンパイルできるようにならないでしょうか?
お願いします。

564 名前:デフォルトの名無しさん :02/05/01 06:45
>>563
2chでお願いしてもコンパイラの動作はかわらねぇな。
で、ファイル構成は変える気が無いと・・・。
c.hの最後にc.cppをインクルードでいけるか・・・。
それはそうと、外部シンボルの未解決がよくわからんってのはカナーリイタイね。

565 名前:563 :02/05/01 08:05
すみません、エラーメッセージは正確には
main.obj : error LNK2001: 外部シンボル ""public: void __thiscall C<int>::func(void)" (?func@?$C@H@@QAEXXZ)" は未解決です
です。説明が足りませんでした。
すみませんでした。


566 名前:564 :02/05/01 08:11
>>565
564のやつじゃだめってことか?
コンパイラとリンカ、それぞれの仕事を把握してから出直せ。

567 名前:561 :02/05/01 08:50
>>562
勘違いでした^^;
ヘッダに実装も書いていたのですが、そこにうっかり普通の関数を混ぜてしまっていたのが原因でした
(戻り値がテンプレート型だったため「ありゃ!テンプレートが重複してるってエラーだよ!!」と思ってしまったのです)
>>562さんのレスを読んで冷静になれたので気づきました。
ありがとうございました。

568 名前:561 :02/05/01 08:55
>>563
なんか私のと似たような質問だな…。と思いつつペイフォワードしてみよう。

何が起こってるかがわからないですか?
それはテンプレートが展開されないから、.obj に実装が含まれてないんだと思いますよ。

569 名前:デフォルトの名無しさん :02/05/01 10:37
>>563
c.cpp の末尾に
template class C<int>;
を入れるよろし。

570 名前:563 :02/05/01 12:06
>>569
ありがとうございます。
あなたは神です。

571 名前:デフォルトの名無しさん :02/05/01 13:16
ctypeの関数はマクロで書けるのにわざわざ関数にしてた・・
鬱だ死のう(-_- )

572 名前:デフォルトの名無しさん :02/05/01 15:52
引数付のマニピュレータの作り方を誰か教えて
もらえないでしょうか?お願いします。

573 名前:デフォルトの名無しさん :02/05/01 16:37
>>572
ios::のコード嫁。
ios::のマニュアル嫁。
読んだら作れ。



574 名前:デフォルトの名無しさん :02/05/01 17:26
std::advanceって、どうやってBidirectionalIteratorとRandomAccessIteratorを識別してるんですか?
template<class X, class Y>で受け取っちゃってるので、さっぱり想像できません

575 名前:デフォルトの名無しさん :02/05/01 20:16
>>574
例えば、今俺の手元にあるSGI版ならこんな風になっとる。
> template <class _InputIterator, class _Distance>
> inline void advance(_InputIterator& __i, _Distance __n) {
> __STL_REQUIRES(_InputIterator, _InputIterator);
> __advance(__i, __n, iterator_category(__i));
> }

第三引数がbidirectional_iterator_tagの __advance と
random_access_iterator_tag の __advance が多重定義されてるので
上手いこと処理が分かれる。
それ以上のことは iterator_traits とかなんとかその辺でも調べるべし。

576 名前:デフォルトの名無しさん :02/05/01 20:27
>>574
タグディスパッチ
http://www.boost.org/more/generic_programming.html#tag_dispatching

(どこかに邦訳があった気がするが)

577 名前:デフォルトの名無しさん :02/05/01 21:24
>>574
そこらへんの説明は、『Generic Programming ―STLによる汎用プログラミング―』
(アスキー)に詳しい。

578 名前:デフォルトの名無しさん :02/05/02 00:37
 ☆★☆★☆ ※『プログラマー』板は5/3予選です!※ ☆★☆★☆

/ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
| ○真面目に投票したい人は
| 日頃からプログラマー板にお世話になっている方、
| みずほの一件でプログラマーを応援したい方々。
| 普通に<<プログラマー>>で投票をお願いします。
| 清き一票を!                 / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
\__   __________    | ●不真面目な人達は
     ∨  Cafe de Biz CUBE      | 期待されているからには何かをやらねば!
    ∧_∧           ∧_∧   | やはりここはマ板らしく、明らかに不正な
   ( ・∀・)          (´∀`;) < ダントツ1位(でも無効票)を狙いましょう。
   ( つ  )つ□   □ ⊂(    )  | 真面目に投票する人の迷惑にならないよう、
  ┃レ __   | ̄ ̄ ̄ ̄ |  .___ノ┃ | ネタ仕込みの方々は<<デスマーチ>>で投票。
  ┗━┳┳\ | ̄ ̄ ̄ ̄| ./━┳┳┛ | 汚れた一票を!
     ┃┃  |_____|    .┃┃   \____________

天災もとい転載歓迎。自由にコピペどうぞ。

579 名前:デフォルトの名無しさん :02/05/02 01:10
VC++7には面白い構文が付け加わってるね
テンプレートでパラメータクラス内のメンバ探索のための __if_exist とか
親クラスの探索のための __super とか
処理系依存というのが嫌だけど・・・

580 名前:デフォルトの名無しさん :02/05/02 01:12
ヽ(゚∀゚)ノ スーパー!

581 名前:デフォルトの名無しさん :02/05/02 03:47
鯖あげ

582 名前:デフォルトの名無しさん :02/05/02 03:52
ヽ(゚∀゚)ノ イフエジスト!

583 名前:デフォルトの名無しさん :02/05/02 16:23
キタ━━( ゚∀゚     )━━!!!
アイディアモリ森!!!!

584 名前:デフォルトの名無しさん :02/05/02 16:47
 |  |_∧ 
 |_|。▽゚) <イソライソアセソブラの出番だふぉるぁ〜アヒャッ
 |文|⊂)
 | ̄|∧|
 ̄ ̄ ̄ ̄

585 名前:sage :02/05/02 16:58
もう大好き!!
チュゥしちゃおう(*^3)

586 名前:デフォルトの名無しさん :02/05/02 17:39
>>575-576
ありがとうございました。
あんまり綺麗な解決方法じゃないなぁとか思ったけど。
しょうがないのかな

587 名前:デフォルトの名無しさん :02/05/02 21:49
>>586
boost ML でつい最近こんな話が出てたヨ。
http://lists.boost.org/MailArchives/boost/msg29007.php

588 名前:デフォルトの名無しさん :02/05/03 01:17
class PLUS{
public:int plus(int a,int b){return a+b;}
};
と書いて、

int c=PLUS().plus(12,12);

と書かなきゃいけないんだけど、

int c=PLUS(12,12);

と書きたい場合はどうすればいい?typedef,defienなしで。
コンストラクタにしたらreturn出来ないし・・・・・・

589 名前:デフォルトの名無しさん :02/05/03 01:33
>>588
operator()を使えば
PLUS()(12,12)とは書けそうな気がする。

590 名前:微妙・・・ :02/05/03 01:34
class PLUS{
int buf1,buf2;
public:
int plus(){return 0;}
PLUS(int i,int n):buf1(i),buf2(n){}
operator int(){return buf1+buf2;}
};

591 名前:デフォルトの名無しさん :02/05/03 01:36
っつーか、それをわざわざクラスにしようって思う理由は何よ。

592 名前:デフォルトの名無しさん :02/05/03 01:37
PLUS<12, 12>()

593 名前:デフォルトの名無しさん :02/05/03 01:40
関数オブジェクトの練習?

594 名前:588 :02/05/03 02:01
>>590
感謝感激雨あられ〜〜〜〜♪ありがとぉ

595 名前:590 :02/05/03 02:26
>>594
あんた>>591さんの話を聞きなさい名
普通はこげなことやらんでしょうに

596 名前:588 :02/05/03 02:36
>595
すみません
593さんの言うように「関数オブジェクト」というものの話を聴いて
作ってみたくなりまして。関数のように使うクラスであるからには
PLUS().plus(....)では醜いかな、と。

597 名前:デフォルトの名無しさん :02/05/03 02:37
関数オブジェクトだったら>>589だろ。

598 名前:デフォルトの名無しさん :02/05/03 02:42
関数オブジェクトは違うがな
int operator()(int i,int n){return i + n;}
てなやつを
Type obj;
int j = obj(12,12);
てなやつよん?

599 名前:588 :02/05/03 02:42
違うの?
「関数オブジェクト」と言うからにはクラスを関数みたいに使えるように
するものだろうと、勝手に推測したんですが。

600 名前:デフォルトの名無しさん :02/05/03 02:43
>>599
それじゃ「関数オブジェクト」じゃなくて「関数クラス」になっちまう。

601 名前:588 :02/05/03 02:44
>>599
・・・・・・うわ、考えてたのと全然違う。

602 名前:588 :02/05/03 02:53
>>598の間違い

603 名前:デフォルトの名無しさん :02/05/03 02:59
関数オブジェクトはdelegateのショボイバージョン

604 名前:デフォルトの名無しさん :02/05/03 03:18
http://www.serbestyazilim.org.tr/eski/res/image002.jpg


stroustrup
禿てるけど(・∀・)カコイイ!!
ジェームスゴスリングより
(・∀・)カコイイ!!

605 名前:デフォルトの名無しさん :02/05/03 03:31
関数オブジェクトなんて、テンプレートと
併用してナンボだとおもうが。

606 名前:デフォルトの名無しさん :02/05/03 03:53
関数オブジェクトの利点て何?
普通の関数より便利?

607 名前:デフォルトの名無しさん :02/05/03 03:57
関数オブジェクトはインスタンスごとに状態をもてるから、
一種のクロージャとして利用することが出来る。

608 名前:デフォルトの名無しさん :02/05/03 04:07
>>607
ぐ・・・・具体例を・・・おねがい

609 名前:デフォルトの名無しさん :02/05/03 07:25
入れ子クラスの利点をきぼーそ。

610 名前:デフォルトの名無しさん :02/05/03 08:34
>>606
templateと合わせると、関数ポインタよりはinline展開が効きやすいかもしれない。

611 名前:初心な人 :02/05/03 11:06
coutって書式が不便だと思うけどどう?
iostream.hにあるform()を使えとか書いてあるけど、g++した
らエラーだったし。

612 名前:デフォルトの名無しさん :02/05/03 11:23
>>604
いや、かっこよく写るように下から写している。
正面から写っているのはしょぼいぞ

613 名前:デフォルトの名無しさん :02/05/03 11:57
>>604
http://www.research.att.com/~bs/homepage.html


614 名前:デフォルトの名無しさん :02/05/04 13:15
今 boost のスマートポインタについて調べてるところなんですが、誰か教えて下さい。
weak_ptrのところに

> When the object last shared_ptr to the object goes away and the object
> is deleted, all weak_ptr objects have their stored pointers set to 0.

という英文があるんですけど、When 以下が良く分かりません。どういう時に
ポインタを0にすると言ってるんでしょう?last がどこにかかるのか分かって
いないだけだと思うので、英語の問題だからスレ違いと言えばスレ違いかもし
れませんが、たぶん使ってる方がいらっしゃるだろうと思うのでここで質問さ
せて下さい。


615 名前:デフォルトの名無しさん :02/05/04 13:20
shared_ptrの参照カウントが0になってオブジェクトが破棄されたら、
それを参照しているすべてのweak_ptrが0にセットされるってことだろ

616 名前:614 :02/05/04 13:46
>>615殿
はい、たぶんそんなような感じなんだろうなというのは分かるのですが、last
の意味がイマイチ掴めないんですよね・・・
とりあえずオブジェクトが破棄されたらゼロっつーのは分かるのですが・・・


617 名前:デフォルトの名無しさん :02/05/04 14:04
lastがわからないって何だよ。
一番最後にオブジェクトを参照していたshared_ptrが破棄さて(=参照カウントが0になって)
オブジェクトが破棄されたら〜 ってそのままじゃねーか。

618 名前:614 :02/05/04 15:30
あぁなるほど、
When the object pointed by last shared_ptr goes away.....
って事ですか。ありがとうございます。
last が動詞なのかと思ってワケワカになっとりました。

スレ汚しスマソ。

619 名前:デフォルトの名無しさん :02/05/04 15:39
中学英語じゃねーか

620 名前:デフォルトの名無しさん :02/05/04 16:01
>>619
ツボにはまると、理解できなくなることはある。大目に見といてやれよ。

621 名前:デフォルトの名無しさん :02/05/04 16:09
PlatformSDKの文体とboostのドキュメントの文体とSGI STLのドキュメントの文体でも
色々異なるしな。

書き癖がつかめるまでは他のを読んでる場合でも?なことがある。

英語に達者な人はうらやましいねえ。


622 名前:デフォルトの名無しさん :02/05/04 16:14
漏れは中学生 それでも理解できたから中学英語と言ったんだゴルァ

623 名前:デフォルトの名無しさん :02/05/04 16:29
中学英語すらまともに押さえていないPGだって世の中には山ほど..
洋もののエロ小説とかpenthouseとかはすらすら読めるのになあ。


624 名前:デフォルトの名無しさん :02/05/04 17:07
>>622
褒めて欲しい? それなら技術系の板よりも、馴れ合い系の板に行くことを
薦めるが。

625 名前:デフォルトの名無しさん :02/05/04 17:12
エロ小説は読みやすね、知ってる単語がばっかりだし(w
あと、大統領候補者の演説が、以外にわかりやすい。

626 名前:デフォルトの名無しさん :02/05/04 17:17
> 大統領候補者の演説が、以外にわかりやすい

教育をロクに受けてない連中にも理解できるようにしてるのよ

627 名前:JFK :02/05/04 17:26
We chose to go to the moon.
We chose to go to the moon in this decade and do the other things,
not because they are easy, but because they are hard.


628 名前:デフォルトの名無しさん :02/05/04 17:35
「英文として正確な意味」を理解しようとしなければ、技術系の英文も比較的わかりやすいぞ。
基本的には知ってる単語ばかりだし、推測ができるし。

629 名前:デフォルトの名無しさん :02/05/04 20:23
Windows関連のコードだけどAPIとか関係なさそうなので
こちらに書かせて頂こうと思います。

メモリ上にあるビットマップのピクセルへのポインタを取得し、
インクリメントで1つ1つのピクセルを調べていくプログラムを
書いていたのですが、
for (y = 0; y < height; y++) {
  for (x = 0; x < width; x++) {
    if (*pBits = 0x00FFFFFF) {  // 色を調べる
    // 中略
    }
    pBits++;              // ポインタをインクリメント
  }
}
↑これはうまくいったのですが、
例えば任意の座標を調べたいときはどうすればよいのでしょうか?
*(pBits + x + y * width)だと実行時にエラーが出ました。
C++のポインタの基本のようなことだと思うのですが
よろしければ教えてください。

630 名前:デフォルトの名無しさん :02/05/04 20:25
>>629
ほんとにそのコードがうまくいったのか小一時間問い詰めたい。
1pxは何バイト?

631 名前:デフォルトの名無しさん :02/05/04 20:27
// 色を調べる?

632 名前:デフォルトの名無しさん :02/05/04 20:28
>>631
そこには突っ込んでやるな

633 名前:デフォルトの名無しさん :02/05/04 20:35
>>629
もちろんビットマップはトップダウンだよね。

634 名前:デフォルトの名無しさん :02/05/04 20:38
じつはパレットを持ったビットマップだったりして。

635 名前:629 :02/05/04 20:46
ループについては上手くいきました。
ポインタは
COLORREF *pBits;
なのですが(COLORREFはWindowsの型で、=ダブルワードのようです)、
インクリメントでちゃんと次のピクセルを指してくれているようです
(つまり予想通りの結果になりました)。

また、ビットマップはボトムアップで、32bit(パレット無し)です。
(ループの部分ではxとyはループのカウントにしか使ってないです)

インクリメントで型サイズ分ポインタが進むのなら、と思ったのですが
普通の加算でダメだった理由がわかりません・・・
初心者なものでいまいち上手く説明できないですが
よろしくお願いします

636 名前:デフォルトの名無しさん :02/05/04 20:52
COLORREFはパレットの構造体だが・・・
Bitsに定まった型はない。

637 名前:デフォルトの名無しさん :02/05/04 20:55
じつはビットマップが24bitだったり

638 名前:629 :02/05/04 20:56
すみません、原因がわかりました。
どうやら画像のサイズをはみでていたようです。
レスありがとうございました。

回線切ってマウスのコードで首吊(以下略

639 名前:デフォルトの名無しさん :02/05/04 21:05
>if (*pBits = 0x00FFFFFF) {  // 色を調べる
代入してることには突っ込まなくてよかったのか?

640 名前:デフォルトの名無しさん :02/05/04 21:12
【´Д`;】

641 名前:デフォルトの名無しさん :02/05/04 21:12
回線切ったからいいんじゃない(藁


642 名前:デフォルトの名無しさん :02/05/04 21:34
>>639
>>631みれ

643 名前:デフォルトの名無しさん :02/05/05 01:19
右側にレジスタ置いてもいいようにしたほうが使えるかな?
どうおもう?

644 名前:643 :02/05/05 01:21
あうっ
誤爆しました、スマソ

645 名前:デフォルトの名無しさん :02/05/05 12:12
zukeiと云うクラスがあって、
zukei circle[1000];
zukei square[1000];
としたとき、マルの色、四角の色をそれぞれ、いっぺんに
赤、青にするのはどうしたらいいんでしょう?
for(int i=1;i<1000;i++){circle[i].color=red;}
なんていちいちやるしかないんですか?
circlecolorなんてグローバル変数を使って
他の部分にも影響出してしまうのもイヤです。

646 名前:デフォルトの名無しさん :02/05/05 12:23
>>645
いちいち、って for (int i = 0; i < LIMIT; i++){ ... } がベストだと思うが。
むしろ、なんでグローバル変数なんて言葉がここで出てくる?
colorってのはzukeiクラスのメンバで、それを変更したいんだろだろ?

647 名前:デフォルトの名無しさん :02/05/05 12:26
static int flag;
zukei(){if(flag++ < 1000)color = redの値; else color = blueの値;}

イクナイ?ヤッパリ....

648 名前:デフォルトの名無しさん :02/05/05 12:32
flag とは、つまり旗です。

649 名前:デフォルトの名無しさん :02/05/05 12:33
>>646
グローバル変数定義しといて、color の値が必要な時にそれを参照するっ
てことだろ。>>645 は、何のためにクラス使うか良く考えた方がいいと思
うよ。

>>647
なにしたいかサパーリわからんけど、とにかく flag++ なんて言う気持ち
悪い変数名のつけ方やめろ。

650 名前:647 :02/05/05 12:39
( ´Д⊂ヽうえーん気持ち悪いって言われたよ〜

651 名前:デフォルトの名無しさん :02/05/05 12:51
flag++はキモいだろ、やっぱ。

652 名前:名無し :02/05/05 12:52
>colorってのはzukeiクラスのメンバで、それを変更したいんだろだろ?
zukeiクラスのメンバーじゃなくっても、グローバル変数ならクラスの中
から参照できるでしょ。他に影響がでない、部分的なグローバル変数って
ないんですか?

653 名前:647 :02/05/05 12:54
countの方がヨカタかな・・・

654 名前:デフォルトの名無しさん :02/05/05 12:55
こんなんか
class sukei {
static color;
};

655 名前:デフォルトの名無しさん :02/05/05 12:56
http://sakura2.room.ne.jp/~boogie/cgi-bin/img-box/img20020504213921.jpg

おおもりよしはる=ロリペドオタ、アニオタ、モツオタ、ベトオタ、ブルオタ、セガ信者
ひまわりと幼女のすじまんこに異様な執着心を燃やしているロリペド絵描き
2浪して九州大学歯学科に進むがプロのイラストレーターになるために大学を中退、
同人活動とUOに専念する日々を送るが、その生活は苦しいらしい(藁
自らを画家と呼び、ともすれば不真面目なものと見られかねないアニメ絵
それも、無毛のすじまんこすらも「芸術」の域にまで高めようとしている(らしい)。

現在、伝言板でチョンが暴走中!

■幼すじは至高の芸術!おおもりよしはる■
http://yasai.2ch.net/test/read.cgi/doujin/1020515485/

前スレ おおもりよしはるキタ━━(゚∀゚)━━━ !!!!
http://yasai.2ch.net/test/read.cgi/doujin/1018642526/
関連スレ
【すじ】 ようじょのすじ  【すじ】
http://www2.bbspink.com/test/read.cgi/erog/1017041827/
【抱き枕】すじ丸出し抱き枕ってどうよ?
http://mentai.2ch.net/test/read.cgi/otaku/1016198191/
■■■ロリ絵?おおもりよしはる■■■
http://www2.bbspink.com/test/read.cgi/erodoujin/1016297545/
アニメ絵が芸術?デムパロリコン男おおもりよしはる
http://yasai.2ch.net/test/read.cgi/net/1018005845/
コピペだけで会話するスレ@DTM板
http://pc.2ch.net/test/read.cgi/dtm/1012032352/
48: 柳さんトコの抱き枕カバーとかって・・・2枚買
http://comic.2ch.net/test/read.cgi/sakura/1019402459/

656 名前:デフォルトの名無しさん :02/05/05 12:57
>>653
2016倍ほどそっちのほうがいい。

657 名前:647 :02/05/05 12:58
>>645のやりことを勘違いしてたので逝って来ます・・・・(-_-)

658 名前:デフォルトの名無しさん :02/05/05 13:19
zukei::zukei( int c ) : color( c ) { /*...*/ }
std::vector<zukei> circle(1000, zukei(red)), square(1000, zukei(blue));

・・・これじゃだめかのぅ? >>645

659 名前:デフォルトの名無しさん :02/05/05 13:40
std::fillで十分じゃろ。


660 名前:デフォルトの名無しさん :02/05/05 13:45
std::fill使っても659より簡単にはならぬと思うが。

661 名前:デフォルトの名無しさん :02/05/05 13:50
C++がOOPLじゃない点ってどんなところ?


662 名前:デフォルトの名無しさん :02/05/05 14:41
>for(int i=1;i<1000;i++){circle[i].color=red;}
circle[0]は初期化しちゃいけないの?

663 名前:デフォルトの名無しさん :02/05/05 14:50
main()がオブジェクトでもなんでもないところ。


664 名前:デフォルトの名無しさん :02/05/05 15:14
Ruby >>>>>>>>>>>>>>>>>>>>>>>>>>> C++
Rubyigainogenngohakuso !
あああRuby!tytytytytytyty

665 名前:デフォルトの名無しさん :02/05/05 15:17
GW 終わるまでの我慢だな...。>>664

666 名前:デフォルトの名無しさん :02/05/05 15:20
Riubuy!!!!

667 名前:デフォルトの名無しさん :02/05/05 15:21
(プ(プ(プ(プ(プ(プ(プ(プ(プ(プ(プ(プ(プ(プ(プ(プ
プ(プ(プ(プ(プ(プ(プ(プ(プ(プ(プ(プ(プ(プ(プ(プ
(プ(プ(プ(プ(プ(プ(プ(プ(プ(プ(プ(プ(プ(プ(プ(プ
プ(プ(プ(プ(プ(プ(プ(プ(プ(プ(プ(プ(プ(プ(プ(プ
(プ(プ(プ(プ(プ(プ(プ(プ(プ(プ(プ(プ(プ(プ(プ(プ
プ(プ(プ(プ(プ(プ(プ(プ(プ(プ(プ(プ(プ(プ(プ(プ
(プ(プ(プ(プ(プ(プ(プ(プ(プ(プ(プ(プ(プ(プ(プ(プ
プ(プ(プ(プ(プ(プ(プ(プ(プ(プ(プ(プ(プ(プ(プ(プ
(プ(プ(プ(プ(プ(プ(プ(プ(プ(プ(プ(プ(プ(プ(プ(プ
プ(プ(プ(プ(プ(プ(プ(プ(プ(プ(プ(プ(プ(プ(プ(プ
(プ(プ(プ(プ(プ(プ(プ(プ(プ(プ(プ(プ(プ(プ(プ(プ
プ(プ(プ(プ(プ(プ(プ(プ(プ(プ(プ(プ(プ(プ(プ(プ
(プ(プ(プ(プ(プ(プ(プ(プ(プ(プ(プ(プ(プ(プ(プ(プ
プ(プ(プ(プ(プ(プ(プ(プ(プ(プ(プ(プ(プ(プ(プ(プ


668 名前:デフォルトの名無しさん :02/05/05 15:26
>>664 >>666-667

・・・・・・

( ΦωΦ)σ)´Д`)

669 名前:668 :02/05/05 15:29
えんvwjkqえjkqうぇj
kqうぇjkqうぇjkqうぇjkqうぇjkqうぇjkq
うぇjkqうぇjkqうぇjkqうぇjkqうぇjkqうぇjk
qうぇjkqわrsfうぇfgtfgtfgtfgtfgtfgt
fgたえrw4あえrw4あえrw4あえrw4あえrw4あえrw
4あえrw4あえrw4ごーq23t5;、lq34¥mgvdfz
bv
dsv

dsvdslkhjう゛ぃお
Ruby!

670 名前:デフォルトの名無しさん :02/05/05 17:13
宇宙人も使ってる Ruby!!!

671 名前:デフォルトの名無しさん :02/05/05 17:47
ウチュー人しか使ってないRuby!!!

672 名前:デフォルトの名無しさん :02/05/05 17:56
子供「ママーあの>>670なに〜?」
ママ「しっ、見ちゃいけません!キチガイになっちゃうわ」

673 名前:645 :02/05/06 12:22
645の質問。答は、static memberにしておけば、
クラス共通だからいっぺんに変えられるってことだね。
まともな返事ないから、自分で答えみつけちゃった。
2chのやつらって、たよりないなあ。こんな初心者の
質問にもまともに答えられねえなんて。

>zukeiと云うクラスがあって、
> zukei circle[1000];
> zukei square[1000];
> としたとき、マルの色、四角の色をそれぞれ、いっぺんに
> 赤、青にするのはどうしたらいいんでしょう?
> for(int i=1;i<1000;i++){circle[i].color=red;}
> なんていちいちやるしかないんですか?
> circlecolorなんてグローバル変数を使って
> 他の部分にも影響出してしまうのもイヤです。

674 名前:デフォルトの名無しさん :02/05/06 12:39
>>673
>>654


675 名前:デフォルトの名無しさん :02/05/06 12:44
が、しかし、circleとsquareをそれぞれいっぺんに変えることは出来ないという罠。
たよりない呼ばわりしてるくせに自分の質問の意味もわからんのか?
いちいち全部変えるか、それぞれに色IDでも持たしてIDと色のテーブル用意しれ。

676 名前:デフォルトの名無しさん :02/05/06 12:48
bakahahottoku

677 名前:デフォルトの名無しさん :02/05/06 14:00
C++にCで言う所のfreopenに相当するものがあるか教えて下さい。
お願いします。

678 名前:デフォルトの名無しさん :02/05/06 14:01
>>677
std::freopen()

679 名前:デフォルトの名無しさん :02/05/06 14:13
>>678
ありがとうございます。でも、ちょっと違う嗜好なのです。
たとえば、fstreamのオブジェクトをcinやcoutと結びつけたいのです。
tieやrdbufを使ってみましたがうまくいきません。

680 名前:デフォルトの名無しさん :02/05/06 14:34
fstreamをそのままcin/coutの替わりに使えばいいんでないの?

681 名前:デフォルトの名無しさん :02/05/06 14:45
>>680
そうなんですが、状況に応じて切り分けたいのです。
fileがopenできた時はそのまま使い、openに失敗した時はcinに結びつけて、
そのままプログラムを走らせて行きたいのです。

682 名前:デフォルトの名無しさん :02/05/06 14:58
>>681
こんな感じかえ?

void foo(istream& in)
{
  なんらかの処理
}
int main()
{
  ifstream f("ファイル名");
  if(f.fail()){
    foo(cin);
  }else{
    foo(f);
  }
  return 0;
}



683 名前:デフォルトの名無しさん :02/05/06 15:04
>>682
ありがとうございます。fstreamはiostreamから派生しているので、単純に
istreamで受ければいいのですね。
てっきり、cinをfstreamにダウンキャストするしかないと思いこんでいまし
た。dynamic_castを行っても失敗するし、やっぱりだめでした。
これでプログラム書いてみます。

684 名前:デフォルトの名無しさん :02/05/06 18:01
よほどのことがない限りキャストはやめたほーがいーよ。


685 名前:名無し :02/05/06 23:22
c++ってなじめないんだよな。出力書式なんかも不便そうだし。
printf("%-10s %6.2f %-04.5d,sarray,y,x);
なんてCの出力をC++ではどうするんだろcoutを使って。

686 名前:デフォルトの名無しさん :02/05/06 23:24
>>685
std::printf() を使う。

いや、もちろん I/O stream と組み合わせて書式指定する方法もあるんだけど、
何かと面倒なので俺は std::sprintf() 愛用してるよ。

687 名前:デフォルトの名無しさん :02/05/06 23:25
>>685
#include <cstdio>
してprintf使います。つーか、マニュピレータ調べてください。

688 名前:687 :02/05/06 23:27
やってもーた... マニピュレータ...
シュミレーション...

689 名前:デフォルトの名無しさん :02/05/06 23:35
>>685
確かめてないからわからんけどこんな感じじゃないの?
cout << setw(10) << sarray << setw(0) << ' ' << setw(6) << setprecision(2) << y << setw(0) << ' ' << setw(5) << setfill('0') << x;

690 名前:デフォルトの名無しさん :02/05/06 23:41
>>689
さすがオブジェクト指向型言語

sarrayとyとx用にそれぞれoperator <<を定義するのが正道だな。
その中でstd::sprintfを使おうが何だろうが別にかまわないんでないの?

691 名前:デフォルトの名無しさん :02/05/06 23:41
s/さすがオブジェクト指向型言語 /さすがオブジェクト指向型言語のふりして手続き型プログラミング/


692 名前:デフォルトの名無しさん :02/05/06 23:42
>>689
吐き出すバイナリの効率はたぶんいいんだろうけど、記述の手間としては
泣きたくなるようなコードやねぇ。
>>685の記述をしたら>>689相当のコードを吐いてくれるような
機能ってのを、どうにかならんもんかしら。テンプレートの拡張とかで。

693 名前:デフォルトの名無しさん :02/05/06 23:46
>>692
> 吐き出すバイナリの効率はたぶんいいんだろうけど
いや、ぜんぜん。

694 名前:デフォルトの名無しさん :02/05/06 23:49
>>692
stdio.hとiostreamの簡単なベンチマークテストをやってみたら、泣きたくなるほど
iostreamは遅いよ。

695 名前:デフォルトの名無しさん :02/05/06 23:51
処理系よって程度がちがうけどね。
VCとかのおまけiostreamは最悪かも。
そうでなくても、iostreamは遅いだろうけど。


696 名前:デフォルトの名無しさん :02/05/06 23:56
printf 使うなら ios::sync_with_stdio(); を忘れずに。

697 名前:デフォルトの名無しさん :02/05/07 00:03
>>696
それ初めて見た.. 俺もまだまだやね。

MSDN見る限りだと性能に影響が出るようだけど、そんなもんかね?


698 名前:696 :02/05/07 00:12
>>697
これしとかないとエラー終了することがあります。
しゃれにならんっス。

699 名前:デフォルトの名無しさん :02/05/07 00:19
cin/couは10行プログラムぐらいでしかつかわないから気づかなかった。


700 名前:デフォルトの名無しさん :02/05/07 00:25
>>698
std::sync_with_stdio()はデフォルトでtrueじゃないのか?

701 名前:696 :02/05/07 00:28
>>700
実際にエラー終了したことがあるんですよ。
ちなみに Cygwin の g++ で。

702 名前:デフォルトの名無しさん :02/05/07 00:29
ARMにはそんなもんのってやがらないんだけど、
それって標準ライブラリに含まれてるの?

703 名前:デフォルトの名無しさん :02/05/07 00:30
>>701
怖いっすねえ。まだまだ標準C++には準拠してない点があるという事か。

704 名前:デフォルトの名無しさん :02/05/07 00:36
>>702
ARMの時代にはなかったのではないでしょうか。
私も今ストリームバッファについての説明を「C++標準ライブラリ
チュートリアル&リファレンスを読んで解読している所です。

705 名前:デフォルトの名無しさん :02/05/07 00:36
そういう仕様があるといっても
ちゃんと準拠してるかどうか疑わなくてはいけない
C++ のやるせなさよ。

706 名前:デフォルトの名無しさん :02/05/07 00:38
一昔前のg++って使い物にならなかったよね。
ごく簡単なまともなコードなのにコンパイルが通らない。
ちなみにv 2.7.2

707 名前:デフォルトの名無しさん :02/05/07 00:39
g++はv 3.x.xが安定したら使うかねー。
それまでは別ので何とかしる。


708 名前:デフォルトの名無しさん :02/05/07 00:39
namespace周りでしょ?
その辺だとtemplateはVCよりもマシだったと思うし。

709 名前:デフォルトの名無しさん :02/05/07 00:40
やっぱりUNIX系ではCを使うべきだよ。

710 名前:デフォルトの名無しさん :02/05/07 00:44
UNIX or GNU系はあらゆる言語が使えてホスィ。
なんかそんな感じがする。

711 名前:デフォルトの名無しさん :02/05/07 00:45
C++の言語仕様の大きさから、コンパイラメーカーの負担がぐっと
増えたんだろうなあ。その結果としてバグがたくさん埋もれている。
ようやく標準に準拠できた頃に、C+=2 なんて言語ができてきたりして。

712 名前:デフォルトの名無しさん :02/05/07 00:46
C#では不足ナリか?

713 名前:デフォルトの名無しさん :02/05/07 00:46
>>711
> C+=2

ワラタ
C#がそのつもりらしいけど、全然違うな。

714 名前:デフォルトの名無しさん :02/05/07 00:47
テンプレートが未だにちょビット変なVC6だけど、我慢してつかっとります。
細かいver.upでバグの増えるg++/libg++はこわくてつかえません。


715 名前:アマグラマ1号 ◆r6Wx8cCc :02/05/07 00:52
VC6はnewが失敗しても例外を返さないのがなんともかんとも。
STLは例外返すことを前提として組まれてるから
メモリが一杯になると不正アクセスになる罠。
_set_new_handler で例外返すようにしてるけど、
みんなどうしてます?

716 名前:デフォルトの名無しさん :02/05/07 00:56
>>715
コテハン?
この板では珍しいね。

717 名前:shige :02/05/07 01:02
haxa?

718 名前:デフォルトの名無しさん :02/05/07 01:03
>>717
出てこなくていいよ。お前もKusakabeもロ○鉄も

719 名前:アマグラマ1号 ◆r6Wx8cCc :02/05/07 01:06
健全なコテハンを目指します。
アマですがどうぞよろしく。

720 名前:sage :02/05/07 01:07
>>715
ワシも_set_new_handlerつかってる。


721 名前:デフォルトの名無しさん :02/05/07 01:10
>>719
できればCスレでも回答してホスィ

722 名前:アマグラマ1号 ◆r6Wx8cCc :02/05/07 01:24
>>720
やっぱみんな使ってるんですね。
ファイルを追加するだけでいいようにはしてるんですが、
ホントにみんなこんなことやってるのか
ちょっと不安だったんで。

>>721
分かる範囲で回答スマス。

723 名前:デフォルトの名無しさん :02/05/07 02:08
enum DATA{A=10,B=20,C=30};
template<DATA data>class AAA{};

ダメ??

724 名前:723 :02/05/07 02:17
ごめん。漏れの頭が腐ってたわ。少し逝ってくるよ。

725 名前:デフォルトの名無しさん :02/05/07 02:34
>>715
VC.NET(SDK版)もbad_alloc投げないよ。
標準C++ライブラリが付属してないからだと思うけど。

726 名前:アマグラマ1号 ◆lo1UDXY2 :02/05/07 03:07
>>725
.NET でもまだ対応してないの!?
と思って VS.NET Academic で試したところ、大丈夫でした。
nothrow にもちゃんと対応していて、Good! です。

727 名前:デフォルトの名無しさん :02/05/07 03:08
あげとくか。
3時だし

728 名前:デフォルトの名無しさん :02/05/07 03:13
>>726
いや、だから。
.NET Framework SDK版のVC++は標準Cライブラリしか付属してないんで、
標準C++ライブラリに所属する std::bad_alloc が含まれていない。
従って、newはNULLを返す仕様であると言うこと。

729 名前:アマグラマ1号 ◆r6Wx8cCc :02/05/07 03:19
>>728
.NET がそもそも bad_alloc を返さないという
万が一の可能性を考えてチェックしただけです。
やっぱ流石になかったようですね。

730 名前:デフォルトの名無しさん :02/05/07 16:58
CとC+とC++は、初めてやるならどれから勉強したほうがいいでしょうか?

731 名前:デフォルトの名無しさん :02/05/07 17:00
730
ねたですか?

732 名前:デフォルトの名無しさん :02/05/07 17:00
C+++++++++++++++++++++++++++++++++++++++++++++++>>>>>C++

733 名前:デフォルトの名無しさん :02/05/07 17:03
>>728
> VC++は標準Cライブラリしか付属してないんで、

・・・・・嘘だろ・・・?
じゃあprintfとかstrcmpとかしか使えないのか?

734 名前:デフォルトの名無しさん :02/05/07 17:07
今の時代はCよりDだな。

735 名前:デフォルトの名無しさん :02/05/07 17:13
>>733
疑うなら試せよ。

assert.h conio.h ctype.h direct.h dos.h eh.h errno.h excpt.h fcntl.h
float.h fpieee.h gcroot.h headers io.h limits.h locale.h malloc.h math.h
mbctype.h mbstring.h memory.h minmax.h new.h process.h search.h setjmp.h
setjmpex.h share.h signal.h stdarg.h stddef.h stdexcpt.h stdio.h stdlib.h
string.h tchar.h time.h typeinfo.h useoldio.h varargs.h vcclr.h wchar.h xmath.h

sys/locking.h sys/stat.h sys/timeb.h sys/types.h sys/utime.h

付属しているヘッダ。
C++として使うためにどうしても必要なnew.hおよび、例外系のベースヘッダは
ついてるけど、それだけ。

736 名前:デフォルトの名無しさん :02/05/07 17:21
>>735
sys/*.hが標準Cライブラリかよ!

737 名前:736 :02/05/07 17:24
dos.hもconio.hもあるじゃない(ワラ

738 名前:デフォルトの名無しさん :02/05/07 17:37
ActiveX(COM)からクライアントDDEを呼ぶを作っています。
DdeConnectでDMLERR_NO_CONV_ESTABLISHEDエラー
でクライアントとの対話に失敗してしまいます。
COMからの呼び出しですと、何かDDEへのアクセス権
が欠けるのでしょうか?
ご存じの方いらっしゃいましたらお願いします。

739 名前:デフォルトの名無しさん :02/05/07 17:40
C++初心者ですけど設計理念についてお聞きしたいです。
クラスって’機能’に注目して、変数や、その変数を扱う関数を単にまとめただけっていうのはありですか?
いわゆる汎用性のある、組込型の様な新たな’型’を設計するのでなければ上記のようなクラス設計ってかなり需要がありそうなんですが。
たとえばコンソールクラスは、テキストバッファやアトリビュートバッファ、それらを処理する関数を単にまとめただけ。
オブジェクトは一つで十分なのでコピーも代入演算子も書かない。そういうのってよくありますか?


740 名前:デフォルトの名無しさん :02/05/07 17:41
よくある。

そもそも クラス=型 としているC++が少し特殊なだけ

741 名前:デフォルトの名無しさん :02/05/07 17:45
C++初心者がいきなりクラス設計をするとは・・・
デザパタに当てはめて設計するのがいいかと。


742 名前:デフォルトの名無しさん :02/05/07 17:48
よくある勘違い。

そもそも 型≒バイト数と勘違いしてるやつが多いだけ

743 名前:デフォルトの名無しさん :02/05/07 17:50
>>742
ハァ?

744 名前:デフォルトの名無しさん :02/05/07 18:10
>>743
ハァ? ?

745 名前:s :02/05/07 18:23
>そもそも クラス=型 としているC++が少し特殊なだけ
けっこう勉強したつもりなんだけど未だにクラスと型の区別がつかぬ。
どゆいみ?

746 名前:デフォルトの名無しさん :02/05/07 18:25
>740-744
そうですか。実践の場では良くあるって事でよろしいでしょうか?
どうもありがとうございました。

747 名前:デフォルトの名無しさん :02/05/07 18:40
>>745
C#の struct と class の違いを考えてみな。
要は値型か参照型かと言うことなんだけど。

748 名前:デフォルトの名無しさん :02/05/07 18:42
目に見える(ソースに書いた)物はもちろん型だけど、
それ自体がインスタンスを表すかどうか、と言うことだね。

749 名前:デフォルトの名無しさん :02/05/07 18:50
>>739
つーか結局、クラスの設計をするって事は、新しい型の定義をするってことだ。

>>745
ってことで、クラスは型の一例。

750 名前:s :02/05/07 18:58
>747
ホンマに?(それなら余裕で分かるんだけど・)

>748
つまりstaticメンバのみのクラス(class/struct)や、
namespaceは型ではないということ?

(namespaceはもちろん型じゃないけど)


■過去ログ置き場に戻る■ 1- 前250 次250 最新50
DAT2HTML 0.33f Converted.