[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2chのread.cgiへ]
Update time : 03/13 21:05 / Filesize : 260 KB / Number-of Response : 1002
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

スレを勃てるまでもないC/C++の質問はここで 3



1 名前:デフォルトの名無しさん mailto:sage [2007/08/19(日) 20:07:56 ]
スレを勃てるまでもない低俗なC/C++の質問はここでお願いします。

過去ログ
スレを勃てるまでもないC/C++の質問はここで
pc11.2ch.net/test/read.cgi/tech/1167476845/
スレを勃てるまでもないC/C++の質問はここで 2
pc11.2ch.net/test/read.cgi/tech/1178503366/

792 名前:デフォルトの名無しさん mailto:sage [2007/11/20(火) 15:18:08 ]
C++で、stringに入力した文字列をint型に変換する方法が分かりません。
atoi()を使うとエラーが出てしまいます。

793 名前:デフォルトの名無しさん [2007/11/20(火) 15:19:08 ]
string s="123456";

cout << atoi(s.c_str());

794 名前:デフォルトの名無しさん mailto:sage [2007/11/20(火) 15:29:00 ]
string s="123456";
int i;
istringstream(s) >> i;

795 名前:デフォルトの名無しさん [2007/11/20(火) 15:39:01 ]
代入演算子で、整数変数に浮動小数点をかけ算するとき、ワーニング出ないようにするにはどうすればいいの。
int value=10;
value *= 0.5;


796 名前:デフォルトの名無しさん mailto:sage [2007/11/20(火) 15:45:22 ]
整数演算に直す。
value /= 2;

797 名前:デフォルトの名無しさん [2007/11/20(火) 16:15:33 ]
WindowsAPI使えば、スタンバイとか自分の好きな風にカスタマイズできますか?

PCのスタンバイ設定が気に入らないので。

798 名前:デフォルトの名無しさん [2007/11/20(火) 16:16:42 ]
レジストリだろう

799 名前:デフォルトの名無しさん [2007/11/21(水) 08:51:30 ]
double型・float型っていくらの整数まで厳密に保持できると保証されてるんでしょうか?
(桁が上がっていくと1の位を保持できなくなるわけですよね)
具体的にはunsigned intの最大値までそれぞれ保証しているのか知りたいのです。

800 名前:デフォルトの名無しさん mailto:sage [2007/11/21(水) 09:29:21 ]
>>799
それぞれの仮数部のビット数を調べればいい。
結論から言えば、一般的にdoubleは53bit、floatは24bitとなる。
従って、一般的な4バイト整数と較べた場合、floatは精度が足りないと言うことになる。



801 名前:デフォルトの名無しさん mailto:sage [2007/11/21(水) 12:50:50 ]
>>800
なるほど、納得です!
ありがとうございました。

802 名前:デフォルトの名無しさん mailto:sage [2007/11/21(水) 22:31:20 ]
保障はされてなかった気がする

803 名前:デフォルトの名無しさん [2007/11/22(木) 01:15:33 ]
質問です。
今自分はCからFORTRANにする事をしていて、
wgtinit(w,s1,inival,flag) /*initialize random weight matrix*/

drawrest(xps+50,50,200,200,yellow)

line(xp,250,xp,yp,white,0,0)
といのがCのプログラムの中で出てきたのですが、これはどういう意味で、
これをFORTRANで表現するにはどうしたらいいのでしょうか?


804 名前:デフォルトの名無しさん mailto:sage [2007/11/22(木) 01:24:43 ]
>>803
我々はエスパーじゃない。

805 名前:デフォルトの名無しさん mailto:sage [2007/11/22(木) 01:27:41 ]
>>803
お前みたいなのを雇うなんて会社の程度が知れてるな

806 名前:デフォルトの名無しさん mailto:sage [2007/11/22(木) 01:39:29 ]
>>803
>といのがCのプログラムの中で出てきたのですが、これはどういう意味で、
>これをFORTRANで表現するにはどうしたらいいのでしょうか?
それを調べるのがあんたの仕事だ。
調べずとも明らかなことだけなら猫にでもやらせればすむことだからな。

807 名前:デフォルトの名無しさん mailto:sage [2007/11/22(木) 01:44:40 ]
すみません超初心者なんですが質問いいでしょうか

1、ネットで見つけたあるサンプルをVisual C++ 2005 Express Editionというソフトで開くと
「古いバージョンのソフトで作ってあるから新しいソフトに書き直す」
というような内容のメッセージがでたのでOK、開けました

2、ビルドして実行しようとすると
”ビルドエラーが発生しました。続行して、最後に成功したビルドを実行しますか?”
というメッセージが出たのでOK

3、”プログラム’・・・.exe’を開始できません。指定したファイルが見つかりません。’
というメッセージが出てきて実行できません。

これってVisualC++2005だとこのソースはビルドできなくて結局使えないってことですか?
ゲームを作ろうとしたのにいきなり詰まってて困ってます。

808 名前:デフォルトの名無しさん mailto:sage [2007/11/22(木) 01:47:35 ]
>>807
2.の時点で間違っている。
ビルドエラーが発生してるのに実行しようとしているため。
ちゃんとビルドできるようにして来い。
わかんなかったらソースとエラー書いてくれ。
もしくは、そのサンプルがあるURLを書いてくれ。

809 名前:デフォルトの名無しさん mailto:sage [2007/11/22(木) 02:02:47 ]
CUIでのゲームプログラムを作ろうと思ってるんですが、
保存したデータ内容の編集はCの標準ライブラリのみで出来るのでしょうか。
追記は出来ても一部分のみ書き換えや削除等の方法が分からなくて。

810 名前:809 mailto:sage [2007/11/22(木) 02:04:00 ]
説明不足でした。
ファイル処理の話です。



811 名前:デフォルトの名無しさん mailto:sage [2007/11/22(木) 02:06:36 ]
C以外でやった方が楽だし早いんじゃね?

812 名前:デフォルトの名無しさん mailto:sage [2007/11/22(木) 02:08:50 ]
>>809
ファイルの途中への挿入や削除は標準関数ではできない。
サイズが変わらないなら、方法はある。

813 名前:デフォルトの名無しさん mailto:sage [2007/11/22(木) 02:09:58 ]
>>811
仰るとおりですが、まだ授業でCの勉強しかしてなくて。
javaも独学で勉強してるもののいまいちピンと来ないんですよ…。

814 名前:デフォルトの名無しさん mailto:sage [2007/11/22(木) 02:12:26 ]
>>812
書き換えや削除するとサイズが変わってしまうのでは?

もし宜しければ参考のためにご教示願えますか。

815 名前:デフォルトの名無しさん mailto:sage [2007/11/22(木) 02:12:50 ]
テキスト操作したいならPerlとかPHPでいいんでない?
CとかJavaよりよっぽど楽に扱えるし、新しく勉強するに
してももそれほど時間かからないと思うよ

816 名前:デフォルトの名無しさん mailto:sage [2007/11/22(木) 02:18:22 ]
ファイルがそこまで大きくないなら起動時に一気にすべて読み込み、終了時に新規に出力しなおすとかじゃだめ?

817 名前:デフォルトの名無しさん mailto:sage [2007/11/22(木) 02:18:59 ]
// >>814
// for Example.
#include <stdio.h>
int main()
{
FILE * fp = fopen("foo", "w");
fprintf(fp, "a\nb\nc\n");
fclose(fp);

fp = fopen("foo", "r+");
fscanf(fp, "%*s");
fprintf(fp, "B\n");
fclose(fp);
return 0;
}

818 名前:デフォルトの名無しさん mailto:sage [2007/11/22(木) 02:29:42 ]
>>815
暇潰しにする程度なので、新たに勉強する気力がなくて…。
基本的に学校のPCでしてるので環境がないのもあるんですが。

>>816
その方法が一番確実そうですね。
内容はユーザ情報とスコアランキングくらいなので。

>>817
無知で申し訳ないんですが、%*sってどういう意味でしょうか。
*はワイルドカードって事ですか?
あと試しにコンパイル実行してみましたが特に変化が分からなかったです…。

819 名前:デフォルトの名無しさん mailto:sage [2007/11/22(木) 05:37:26 ]
>>803
> wgtinit(w,s1,inival,flag) /*initialize random weight matrix*/

wgtinit関数に引数w, s1, inival, flagを渡して呼び出す、という意味。
セミコロンがあるはずだが、写し忘れか?
こういうのはキーボードでタイプし直したりせず、コピペしような。

> drawrest(xps+50,50,200,200,yellow)
> line(xp,250,xp,yp,white,0,0)

この2つも同様に、drawrestやlineという名前の関数を呼び出している。

820 名前:デフォルトの名無しさん mailto:sage [2007/11/22(木) 05:38:12 ]
>>807
ダイアログに表示されたメッセージの内容を理解せずにYesやOkを押すような人は、
プログラムを書くのに向いてない。やめたほうがいい。



821 名前:デフォルトの名無しさん mailto:sage [2007/11/22(木) 05:40:51 ]
>>818
気力がなかったら、暇潰しで頭を使うようなことをせず、酒でも飲んで寝てたらどうよ。

> 無知で申し訳ないんですが、%*sってどういう意味でしょうか。

読み飛ばす・・・だったような。
こういうのは覚えておくものではなく、都度scanfのリファレンスで確認刷るものだよ。

822 名前:デフォルトの名無しさん mailto:sage [2007/11/22(木) 07:14:43 ]
>>818
知らないことは調べるだけの話。
それをする気がないのは「無知」ではなく「無気力」。
刻苦を厭う怠惰は人を虎に変えてしまうのだよ。

823 名前:デフォルトの名無しさん mailto:sage [2007/11/22(木) 07:51:59 ]
怠惰には、
無気力な怠惰 = メンドクサイから、何もやらない
と、
前向きな怠惰 = メンドクサイことをしなくても良いように努力・工夫する
がある。


824 名前:デフォルトの名無しさん mailto:sage [2007/11/22(木) 19:50:07 ]
本当に怠惰な人間ならこんな便所の落書きに長文書いていつ来るとも知れぬ無責任な名無しの回答を待つ前に
さっさとグーグル先生でも聞いて済ますと思う

825 名前:デフォルトの名無しさん mailto:sage [2007/11/22(木) 21:19:04 ]
*は代入抑止文字ですか。
変数に格納されないって事ですね。

ご迷惑おかけしました。

826 名前:807 mailto:sage [2007/11/22(木) 21:43:11 ]
すみません。実行できました
VBではよくプログラムをしてるんですがCの勝手がわからなくって。
まだよく分からないのですが、
SDKとかDXライブラリとかの設定をしてなかったから見たいです
出力に
DxLib.exe': 'なんとかかんとか' を読み込みました。必要な DBG ファイルが見つからないか、開けません。
等など沢山でているのは大丈夫でしょうか?

827 名前:デフォルトの名無しさん mailto:sage [2007/11/22(木) 21:51:04 ]
>>826
「何が」大丈夫なのか否かを知りたいの?

828 名前:デフォルトの名無しさん mailto:sage [2007/11/22(木) 22:38:53 ]
>>827
すみません
プログラムが変な動作をしたりしないのか、とか
バグじゃないのか、とか

プログラムに問題があるというメッセージなのか、それとも
これらのメッセージが出ているのは普通で問題はないのか
そういう意味です
なんだかVBと全然違うんですね

829 名前:デフォルトの名無しさん mailto:sage [2007/11/22(木) 22:44:39 ]
>>828
> プログラムが変な動作をしたりしないのか

基本的には、しない

> バグじゃないのか

基本的には、バグではない

> プログラムに問題があるというメッセージなのか

基本的には、違う

> これらのメッセージが出ているのは普通で問題はないのか

基本的には、普通で問題ない

デバッグのための情報がないので、シンボルデバッグできないぞ、というメッセージ。

830 名前:デフォルトの名無しさん mailto:sage [2007/11/22(木) 22:45:37 ]
自分が作ったクラスを入れるlistをsortするため、operator<を定義してるんですが詰まっています。

class Data{
  int x;
  int y;
public:
  Data(int a = 0, int b = 0){ x = a, y = b };
  int getx(){ return x; };
  bool operator<(const Data&);
};

bool Data::operator<(const Data& obj){
  return x < obj.getx();
}

const Dataのobjからgetx()を呼び出しているせいか(?)、以下のコンパイルエラーが出ます。
passing `const Data' as `this' argument of `int Data::getx()' discards qualifiers
getx()はxを変更しないのに、objをconstにしたらダメなのでしょうか?



831 名前:デフォルトの名無しさん mailto:sage [2007/11/22(木) 22:55:52 ]
>>830
int getx() const { return x;}

832 名前:デフォルトの名無しさん mailto:sage [2007/11/22(木) 23:04:43 ]
>>831
ありがとうございます。
const int getx()は試したんですけどねぇ。
この辺ややこしくなってるので勉強し直します。

833 名前:デフォルトの名無しさん mailto:sage [2007/11/22(木) 23:58:10 ]
>>829
本当に親切に答えてくださってどうもありがとうございます。
凄く助かったし安心しました。
これからもっと精進して頑張ってゲームを作ります。

834 名前:デフォルトの名無しさん mailto:sage [2007/11/23(金) 05:31:13 ]
8bit以外のchar型の処理環境ってどんなのがあるの?

835 名前:デフォルトの名無しさん [2007/11/23(金) 15:12:38 ]
#include <iostream>
using namespace std;

class Base
{
public:
static int m_iVal;
void SetValue(int val) { m_iVal = val; }
void Show() { cout << "m_iVal: " << m_iVal << endl; }
};
class Hoge1 : public Base{ };
class Hoge2 : public Base{ };

int Base::m_iVal = 0;

void main()
{
Hoge1 hoge1;
Hoge2 hoge2;

hoge1.SetValue( 100 );
hoge2.Show();
}

このプログラムで hoge2.m_iVal = 100 となるんですが よかったでしょうかね?
確認のためですけど


836 名前:デフォルトの名無しさん mailto:sage [2007/11/23(金) 15:48:08 ]
>>834
ttp://ja.wikipedia.org/wiki/ACOS-6

837 名前:デフォルトの名無しさん mailto:sage [2007/11/23(金) 15:48:32 ]
良い。

838 名前:デフォルトの名無しさん mailto:sage [2007/11/23(金) 15:55:53 ]
charは少なくとも8ビットじゃなかったか?

あーsizeofが1になることが定義されてるだけだっけか

839 名前:デフォルトの名無しさん mailto:sage [2007/11/23(金) 15:58:11 ]
RISCだと、longからcharまで全部32bitってのがあるんじゃね?

840 名前:デフォルトの名無しさん mailto:sage [2007/11/23(金) 16:15:40 ]
確かに規格上 char ≦ short ≦ int ≦ long だから全部同じサイズでも許されるな



841 名前:デフォルトの名無しさん mailto:sage [2007/11/23(金) 17:00:18 ]
>>838
char は1バイト、1バイトが何ビットかって? そんなこと、好きに決めて良いよ

842 名前:デフォルトの名無しさん mailto:sage [2007/11/23(金) 17:09:35 ]
>>838
少なくとも8ビットだよ。

843 名前:デフォルトの名無しさん [2007/11/23(金) 17:31:57 ]
初心者ですが、質問です。

#include <stdio.h>

int main (void)
{
int i = 1000, j = 40, k = 3000;
printf ("iが%dで、\njが%dで、\nkが%dです。\n",i,j,k);
return 0;
}

こう書いた場合はエラーにならないのに、こうする↓と、
printf ("iが%dで、\n
jが%dで、\n
kが%dです。\n",i,j,k);

構文エラー : ')' が、識別子 'jが' の前に必要です。
と言われて、コンパイルでエラーになってしまいます。
C言語では、;を文末をみなすため、どこに改行を入れてもいいと聞いていたのですが、
入れる位置が決まっているのでしょうか?環境は Visual C++ 2005 Express Edition です。

844 名前:デフォルトの名無しさん mailto:sage [2007/11/23(金) 17:38:55 ]
printf ("iが%dで、\n"
"jが%dで、\n"
"kが%dです。\n",i,j,k);

845 名前:デフォルトの名無しさん [2007/11/23(金) 17:45:07 ]
>>844
実行されました!
printfの""の中だと改行するには一度"で終わらせてあげないといけないんですね。
ありがとうございました。

846 名前:デフォルトの名無しさん mailto:sage [2007/11/23(金) 18:08:01 ]
>>845
printfに限らず、文字列は1行ごとに""で終ってないといけない。

847 名前:デフォルトの名無しさん [2007/11/23(金) 18:14:05 ]
プログラムの初心者ですがSQLを書いていますが、C言語と似てると
思いますので、わかる範囲で答えて頂けると助かります

以下のようなプログラムを書いたのですが、パソコンに複数のメールが
送られてきます。 メール送ったら終了のように直したいのですが、
どのようにしたら良いでしょうか


if ((fasterLWMAnow > slowerLWMAnow) && (fasterLWMAprevious < slowerLWMAprevious) && (fasterLWMAafter > slowerLWMAafter)) {
CrossUp[i] = Low[i] - Range*0.5;
Alert(Symbol(), " hit ");
SendMail("Mail Alert", Symbol()+" hitdesu ");


848 名前:デフォルトの名無しさん mailto:sage [2007/11/23(金) 18:22:20 ]
>>847
――これは、新しい釣りですね…。

849 名前:デフォルトの名無しさん mailto:sage [2007/11/23(金) 18:26:58 ]
>>847
100どんだけぇを軽く超えてるよ

850 名前:デフォルトの名無しさん [2007/11/23(金) 18:32:18 ]
すいません。まじめに質問したつもりですが、何がいけなかったでしょうか?



851 名前:デフォルトの名無しさん [2007/11/23(金) 19:05:38 ]
>>846
分かりやすく教えていただき、ありがとうございました!

852 名前:デフォルトの名無しさん mailto:sage [2007/11/23(金) 19:18:01 ]
>>847
そうなっていたんですか!
疑問が解決してすっきりしました、ありがとうございます!!

853 名前:デフォルトの名無しさん mailto:sage [2007/11/23(金) 20:01:54 ]
C++ってCと比べてどれだけ遅いのですか?

854 名前:デフォルトの名無しさん mailto:sage [2007/11/23(金) 20:05:15 ]
午後のこーだの作者曰く話しにならんぐらいとのこと

855 名前:デフォルトの名無しさん mailto:sage [2007/11/23(金) 20:11:12 ]
そりゃ
午後は
アセンブラァばりばり

856 名前:デフォルトの名無しさん mailto:sage [2007/11/23(金) 20:40:08 ]
ただし、一般的には機能を使おうとすればそれに応じてオーバーヘッドがかかるようになる。
Cと全く同じコードを書けば、Cと全く同じ速度にはなる。

まずはアセンブリ出力を見比べてみたり、実測することから始めようか。

857 名前:デフォルトの名無しさん mailto:sage [2007/11/23(金) 22:02:16 ]
>>853
昔は、コンパイラが生成するコードがC++の場合は遅く、
同じことをするにしてもCで書いたほうが速かったのだろう。

C++で書いたコードを、手作業でCに変換しても、
速度的には大して変化しないと思うよ。

すべてのクラスにvtableを持たせるようなことをしなければ、ね。

858 名前:デフォルトの名無しさん mailto:sage [2007/11/23(金) 22:09:20 ]
Cの範囲で書いていたら、C++としてコンパイルしても、生成されるコードは同じだよ。昔から。

859 名前:デフォルトの名無しさん mailto:sage [2007/11/23(金) 22:28:17 ]
一歩C++の領域に踏み入ると劇的に変わるけどね
デストラクタ一つで激変

860 名前:デフォルトの名無しさん mailto:sage [2007/11/23(金) 22:30:12 ]
C++ は参照とかインライン関数とかテンプレートとか駆使したら、
C と同じ速度でより安全なプログラムが書けると思う。



861 名前:デフォルトの名無しさん mailto:sage [2007/11/23(金) 22:32:01 ]
std::sortは比較操作がインライン展開できるから、
qsortよりも速くなりやすいなんてのは有名だよね。

862 名前:デフォルトの名無しさん mailto:sage [2007/11/23(金) 22:35:56 ]
そうそう。
まあ、qsort をマクロ化すれば C でも速いの書けるんだろうけど。

863 名前:デフォルトの名無しさん mailto:sage [2007/11/23(金) 22:36:29 ]
C++は例外に備えないといけないので
Cと同じコードを吐ける場面は少ない

864 名前:デフォルトの名無しさん [2007/11/23(金) 22:37:14 ]
テンプレートとか、STLとかどのくらい手間掛けているか不明なやつ使うと鈍くなる
charやintを直接あやつる範囲ではアセンブラに匹敵する

865 名前:デフォルトの名無しさん mailto:sage [2007/11/23(金) 22:40:22 ]
アセンブリ言語っつっても、
速いコード書くノウハウ無かったら
コンパイラの最適化の方が速かったりするもんな。

866 名前:デフォルトの名無しさん [2007/11/23(金) 22:59:52 ]
とりあえず初心者が動かせる3Dライブラリを開発しますか

867 名前:デフォルトの名無しさん mailto:sage [2007/11/23(金) 23:08:38 ]
>>859
それは、
不必要にデストラクタをvirtualにする
という愚をやらかしているだけだろ。

>>863
それはどこの何というコンパイラ?

例外をthrowする、throwされたものをcatchする、それにはコストは要するが、
例外中立なコードにはオーバーヘッドかからないと思うが。

868 名前:デフォルトの名無しさん mailto:sage [2007/11/23(金) 23:10:33 ]
catchしなくても例外が通り抜けるときにデストラクタを呼ばないといけない
さっきg++で試してみた
virtualかどうかは関係ない

869 名前:デフォルトの名無しさん mailto:sage [2007/11/23(金) 23:10:35 ]
デストラクタから virtual を外すのは
どうしても必要な時だけにするのが無難だべ。

870 名前:デフォルトの名無しさん mailto:sage [2007/11/23(金) 23:17:58 ]
逆だろ? 仮想関数を使う必要がある時だけ付けるよな。



871 名前:デフォルトの名無しさん mailto:sage [2007/11/23(金) 23:19:40 ]
馬鹿が飛びつくつまらない話が出てきちゃった

872 名前:デフォルトの名無しさん mailto:sage [2007/11/23(金) 23:22:00 ]
あとから仮想関数が必要になった時に付け忘れても知らんべ。

873 名前:デフォルトの名無しさん mailto:sage [2007/11/23(金) 23:24:00 ]
JavaやC#みたいに継承禁止ができたら、安心してvirtualをはずせるけど。

874 名前:デフォルトの名無しさん mailto:sage [2007/11/23(金) 23:24:09 ]
使われ方によって、virtualをつける必要があったりなかったりするC++は糞言語。

875 名前:デフォルトの名無しさん mailto:sage [2007/11/23(金) 23:29:11 ]
final/sealed 欲しいよなあ。
Final ですってコメントつけて非仮想デストラクタにすることはあるけど、
コメントだけじゃ心もとないよな。

876 名前:デフォルトの名無しさん mailto:sage [2007/11/23(金) 23:31:57 ]
クラス設計時点で継承の有無はわかるだろ。
あとから必要になったら、その時点で必要な修正を行えばいいと思うが。

877 名前:デフォルトの名無しさん mailto:sage [2007/11/23(金) 23:33:10 ]
C++しか知らないと、そういう物の考え方するんだ

878 名前:デフォルトの名無しさん mailto:sage [2007/11/23(金) 23:33:54 ]
うん

879 名前:デフォルトの名無しさん mailto:sage [2007/11/23(金) 23:35:06 ]
そういう意味で言うと、後から必要になったときでも修正の必要がないように、
デストラクタは必ずvirtualで、っていうのも、あながち間違った選択ではないと思える。

880 名前:デフォルトの名無しさん mailto:sage [2007/11/23(金) 23:35:29 ]
一体誰がどう使うクラスの設計してるんだ?



881 名前:デフォルトの名無しさん mailto:sage [2007/11/23(金) 23:36:14 ]
とりあえず virtual を付けとけば、
どういう変更が必要になろうが何の心配も要らない。
virtual を付けてないと、後の変更でバグを発生させる可能性がある。
その変更を行うのが自分とは限らないわけで、
どっかのバカが変な事をするかもしれない。
そう考えると、デストラクタを非仮想にするのは、
よほど非仮想にするメリットがある場合じゃないと怖くてできない。

882 名前:デフォルトの名無しさん mailto:sage [2007/11/23(金) 23:37:33 ]
C++って、そういう本質的でないところにも気を使わせるのが、糞言語たる所以だね。

883 名前:デフォルトの名無しさん mailto:sage [2007/11/23(金) 23:38:31 ]
速度やデータサイズは本質的な問題だよ。

884 名前:デフォルトの名無しさん mailto:sage [2007/11/23(金) 23:39:30 ]
じゃ、Javaなんてとてもじゃないが使えないってわけだ。

885 名前:デフォルトの名無しさん mailto:sage [2007/11/23(金) 23:39:57 ]
そこが本質的な問題になることがあるから。

886 名前:デフォルトの名無しさん mailto:sage [2007/11/23(金) 23:41:02 ]
速度やデータサイズを気にする必要があれば
Java なんてとてもじゃないが使えないってわけだよ。
気にする必要がないなら使えばいい。

887 名前:デフォルトの名無しさん mailto:sage [2007/11/23(金) 23:42:07 ]
道具は選んで使うべきだ

888 名前:デフォルトの名無しさん mailto:sage [2007/11/23(金) 23:42:50 ]
Cで書けばいいのに(^^

889 名前:デフォルトの名無しさん mailto:sage [2007/11/24(土) 00:13:35 ]
>>868
> catchしなくても例外が通り抜けるときにデストラクタを呼ばないといけない

当たり前だろ。

正常にreturnする時にもデストラクタは呼ばれるのだから、
それは、例外のオーバーヘッドとは言わないだろう。

>>869
それなら、virtual なんて書かずとも全てがvirtual で、
nonvirtual などと書いたものだけがvirtual でなくなる、
そういう言語仕様になるだろうに。

890 名前:デフォルトの名無しさん mailto:sage [2007/11/24(土) 00:15:24 ]
>>889
色々とお話しにならない。



891 名前:デフォルトの名無しさん mailto:sage [2007/11/24(土) 00:19:11 ]
>>872
それをもってして、C++は実行時オーバーヘッドが大きな言語だと言われてもなぁ。

>>873
継承できないようにするハックはあるけど、まぁ、オススメしないわな。
もっと別の方法で、管理すべきだろうな。

>>874
使い方によって、だろ。

キャストしたポインタでdeleteするような使い方をする側が、
デストラクタがvirtualであることを確認し、そうでなければ、
継承するのではなくメンバに持つように実装すべきなんだ。

892 名前:デフォルトの名無しさん mailto:sage [2007/11/24(土) 00:21:26 ]
>>890
具体的に






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<260KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef