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


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

C++相談室 part71



1 名前:デフォルトの名無しさん [2009/07/18(土) 02:54:58 ]
C++に関する質問やら話題やらはこちらへどうぞ。
ただし質問の前にはFAQに一通り目を通してください。
IDE (VC++など)などの使い方の質問はその開発環境のスレに
お願いします。

前スレ
C++相談室 part70
pc12.2ch.net/test/read.cgi/tech/1244942050/l50

209 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 22:06:47 ]
>>203
エラーの出る最低限のサイズのコードを上げろ

210 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 22:13:00 ]
>>207
エスパーして代表的な環境について述べます。
Linux + gccはどちらの場合も最高速を叩き出します。
Windows + vcはどちらも低速でした。
つまり、プログラムでチマチマ最適化を図るよりLinuxを導入するほうが
良いと思われます。

211 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 23:03:58 ]
x86なら特に指定がなければVCもgccも同じl呼び出し規約を
使うのだからそんな速度の違いが出るわけない。

212 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 23:20:54 ]
レジストリにのってるかどうか調べればいいんじゃねぇの

213 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 23:31:35 ]
sjis→utf8の変換処理を自作したいのですが、
サンプルになるようなサイトてありますか?
CとかVC++はみかけるんですがC++は見つからなくて…
環境はlinux+gccです

214 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 23:38:47 ]
>>213
お前がほしいのはサンプルじゃなくてコピペ元だろ

たぶんCのやつそのまま使えるから問題なし

215 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 23:42:54 ]
ああ、レジスタか。
何言い出してんのかと思った

216 名前:212 mailto:sage [2009/08/04(火) 23:46:41 ]
>>215
ふっ
素で間違えたぜ

ごめんなさい

217 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 23:56:38 ]
Releaseコンパイル後のexeファイルにクラス名とかがアスキーで残るんですけど(typeid用?)
これを無くしたい場合はどうすればいいとですか…?





218 名前:デフォルトの名無しさん mailto:sage [2009/08/05(水) 00:01:25 ]
邪道な方法ではUPXを使うとか?

219 名前:デフォルトの名無しさん mailto:sage [2009/08/05(水) 00:14:23 ]
邪道臭いけど、名前丸見えではないようですし(zipのヘッダが見えた気はするけど・・・)
これでも大丈夫そうです。ありがとうございました。

220 名前:デフォルトの名無しさん mailto:sage [2009/08/05(水) 02:39:21 ]
>>207
boost::call_traits あたりを見ると参考になるかもしれない。

221 名前:デフォルトの名無しさん mailto:sage [2009/08/05(水) 08:11:38 ]
>>217
コンパイルオプションの /GR を取ればいいってことかな?
VS2005 だと、プロジェクトのプロパティの 「ランタイム型情報を有効にする」 → 「いいえ」

typeid の他に dynamic_cast がつかえなくなるっぽい。
そのあたりはややこしい話になるので割愛。

222 名前:デフォルトの名無しさん mailto:sage [2009/08/05(水) 11:49:00 ]
>>212
なんの疑問もなく読んでしまった。
だめだ今日は。。。

223 名前:デフォルトの名無しさん mailto:sage [2009/08/05(水) 15:17:49 ]
localeをjapaneseにするとlexical_castで整数を文字列に変換したときに
3桁ごとにコンマがついてしまうのですが、これを防止するにはどうしたら
よいのでしょうか?

224 名前:デフォルトの名無しさん [2009/08/05(水) 15:21:44 ]
c++でネットワーク上のファイル(天気予報XMLファイル)を取得したいのですが、
方法がわかりません。
ググってみるとVC++ではできるようなのですが、
Linux + gcc環境ですので参考になりません。
最悪 system() + wgetコマンド という手がありますが、
もっとスマートな方法(ライブラリとか)があったら教えて下さい。

225 名前:デフォルトの名無しさん mailto:sage [2009/08/05(水) 15:24:05 ]
>>223
localeを"C"に戻す
いちいち面倒ならLC_NUMERICだけjapaneseに変えないでおく

226 名前:デフォルトの名無しさん mailto:sage [2009/08/05(水) 20:41:08 ]
>>224
>最悪 system() + wgetコマンド という手がありますが、
の方がスマートだよ.


227 名前:デフォルトの名無しさん [2009/08/06(木) 01:36:46 ]
Boost.Asioを使ってゴリゴリ書くとか。



228 名前:デフォルトの名無しさん mailto:sage [2009/08/06(木) 02:59:42 ]
#include <boost/shared_ptr.hpp>
#include <boost/enable_shared_from_this.hpp>

class A :public boost::enable_shared_from_this< A >
{
 public:
  A(){ /*shared_from_this();*/ }
  void F(){shared_from_this(); }
};

int main()
{
boost::shared_ptr< A > a( new A() );
a->F();
return 0;
}

c-torで、shared_from_this()すると例外が飛ぶんだけど、何で?

229 名前:デフォルトの名無しさん mailto:sage [2009/08/06(木) 07:20:09 ]
>>228
まだ生成が済んでないオブジェクトへの shared_ptr は存在しない、と考えれば
わりと自然な気がする。

仮にそこで shared_ptr が得られたとして、その後に例外が発生してコンストラクタが
中断したらどうなるの?とか。

230 名前:デフォルトの名無しさん mailto:sage [2009/08/06(木) 07:31:35 ]
>>228
コンストラクタの中では
 A a;
した状態と同じ、ってのもあるな。


www.boost.org/libs/smart_ptr/enable_shared_from_this.html
仕様を確認すると、事前条件 "Requires" に以下の記述がある。
> There must exist at least one shared_ptr instance p that owns t

231 名前:デフォルトの名無しさん [2009/08/06(木) 13:08:19 ]
「このクラスを継承してサブクラスを作ることはない」っていうクラスを記述するとき、デストラクタにvirtual付けますか?
自分は「このクラスを継承しちゃダメ」という意思表示の意味でvirtual付けてないんだけど、
そういうやり方って一般的なのかな?
一応どっかでそういう意見を見て、ふーんって思ってやってたことなんだけど、正しいことなのか今になって不安になってきた。


232 名前:デフォルトの名無しさん mailto:sage [2009/08/06(木) 14:09:29 ]
コンストラクタをprivateに封じて代わりにstaticファクトリを提供すれば誰も継承できないクラスの完成

233 名前:デフォルトの名無しさん mailto:sage [2009/08/06(木) 14:11:42 ]
>>231
付けない。
継承される予定のクラスでも、アップキャストして使う予定のない物は、非virtualのprotectedデストラクタにする。

ここから先は個人的な好みなので参考程度に聞いて欲しいが、
「データメンバを持たない仮想関数のみで構成されたクラス」しか継承する事は考えない。
データメンバを持つクラスを継承したいと思った時は、コンポジションにする。

234 名前:デフォルトの名無しさん mailto:sage [2009/08/06(木) 14:11:55 ]
普通は書かないかな

つーか継承をコンパイルエラーにする記述とか無いもんかな
インターフェイスとファクトリだけ提供して実装は隠す、位しか実装の継承を禁止する方法が思い浮かばない

235 名前:デフォルトの名無しさん [2009/08/06(木) 14:32:23 ]
final宣言ほしいよね。

236 名前:デフォルトの名無しさん mailto:sage [2009/08/06(木) 14:34:41 ]
finalって0xで入るんじゃなかったかな

237 名前:デフォルトの名無しさん mailto:sage [2009/08/06(木) 14:46:36 ]
>>231
付けない。例えばstring(basic_string<char>)なんかも継承を前提としていので
仮想デストラクタではなかったと思う。



238 名前:237 mailto:sage [2009/08/06(木) 14:47:23 ]
>>237
継承を前提としていので×
継承を前提としていないので○

239 名前:デフォルトの名無しさん mailto:sage [2009/08/06(木) 15:13:51 ]
boostのvaultとかsandboxにnon derivableとかいうのがあったと思う

240 名前:デフォルトの名無しさん mailto:sage [2009/08/06(木) 18:01:01 ]
[[final]]

241 名前:デフォルトの名無しさん mailto:sage [2009/08/06(木) 21:35:36 ]
何度見てもキモいシンタックスだ。

242 名前:デフォルトの名無しさん mailto:sage [2009/08/06(木) 21:51:58 ]
#define final [[final]]

ってするだけだろ。

243 名前:デフォルトの名無しさん mailto:sage [2009/08/07(金) 03:46:33 ]
いいかげん define を捨てたい俺には、
それはもっと悪い。

244 名前:デフォルトの名無しさん [2009/08/07(金) 09:12:02 ]
基本的にはC++に関することではなく、Windowsプログラミングに関することですが、
開発環境がC++のため、質問させていただきます。

例えばIE7のようなWebブラウザがあるとします。
そのWebブラウザと連携させるようなツールを使うにはどうすればいいのでしょうか?

具体的には毎回同じ文字でログイン名などを入力するのが面倒なときに、自動で入力して
そのあとにログインボタンをクリックし、勝手にログインしてくれるようなツールを作成したいと思ってます。

一部ではAmazonの激安祭りなどでスクリプトとか呼ばれているものです。
使用用途はそういったものではなく、単純にプログラムの勉強としてそういったものを作る方法が
勉強したいだけです。(これは本当です。)

わかる方がもしいらっしゃれば回答よろしくお願いいたします。

245 名前:デフォルトの名無しさん mailto:sage [2009/08/07(金) 09:38:50 ]
じゃ俺は開発環境がC++なんで、RPGの作り方教えてください

246 名前:デフォルトの名無しさん mailto:sage [2009/08/07(金) 09:39:36 ]
ついでに開発環境がC++なんで、エロゲの作り方教えてください

247 名前:デフォルトの名無しさん mailto:sage [2009/08/07(金) 09:44:38 ]
>>244
鼬害。WebProg板へ。

>>245
鼬害。ゲ製板へ。

>>246
鼬害。Pinkのどっかへ。



248 名前:デフォルトの名無しさん mailto:sage [2009/08/07(金) 09:51:38 ]
Pinkのどっか行ってきます

249 名前:272 mailto:sage [2009/08/07(金) 11:29:26 ]
どうしても参照を付け替えたいのですが、何か良いアイディアはないでしょうか?
int a = 1;
int b = 2;
int& r;
のときに動的にrをaかbを指すように付け替えたいです。
無理は承知でお願いします。

250 名前:デフォルトの名無しさん mailto:sage [2009/08/07(金) 11:35:05 ]
>>249
int& r = boolean ? a : b;
ではだめかいな?

251 名前:250 mailto:sage [2009/08/07(金) 11:36:36 ]
後は
int * p;
if(xxx)
{p = &a;}
else
{p = &b;}
int& r = *p;

252 名前:272 mailto:sage [2009/08/07(金) 11:42:15 ]
>>251
その方法でいけました! まさかこんな方法があろうとは。
本当に有難うございました。
一回途中にポインターをかませば良かったんですね。


253 名前:272 mailto:sage [2009/08/07(金) 11:57:59 ]
ウソです。無理でした。ごめんなさい。


254 名前:デフォルトの名無しさん mailto:sage [2009/08/07(金) 12:04:01 ]
int &r = *p;
の代わりに
#define r (*p)
と書けばおk

255 名前:251 mailto:sage [2009/08/07(金) 12:33:29 ]
>>253

#include <iostream>

int main()
{
bool flag;
std::cin >> flag;

int a = 1;
int b = 2;

int * p;
if(flag)
{p = &a;}
else
{p = &b;}
int& r = *p;

std::cout << r << std::endl;
return 0;
}


これでダメだったって事?

256 名前:デフォルトの名無しさん mailto:sage [2009/08/07(金) 12:35:29 ]
そんな面倒な事をせずに普通にポインタを使えばいいだろ
参照じゃないと駄目な理由は何だ?

257 名前:デフォルトの名無しさん mailto:sage [2009/08/07(金) 12:50:40 ]
参照のほうが綺麗だから



258 名前:272 mailto:sage [2009/08/07(金) 13:27:42 ]
int a = 1;
int b = 2;
int* p = &a;
int& r = *p;
cout << "r = " << r << "\n";
p = &b;
cout << "r = " << r << "\n";

で、1、2と表示して欲しかった。
(実際は両方とも1)

どうしても参照でなければならない理由があるのです。
理由は内緒。




259 名前:デフォルトの名無しさん mailto:sage [2009/08/07(金) 13:30:20 ]
>>285
ポインタへの参照にするとか。

260 名前:デフォルトの名無しさん mailto:sage [2009/08/07(金) 13:32:30 ]
みすった。
>>258 だった。

261 名前:デフォルトの名無しさん mailto:sage [2009/08/07(金) 13:34:59 ]
そもそも参照は

・初期化しなければいけない
・代入できない

という仕様だから切り替えはできないよ

262 名前:デフォルトの名無しさん mailto:sage [2009/08/07(金) 14:03:11 ]
>>258
そういうことか。
ちなみにそんな状況は俺は出くわしたことはないんだが。


263 名前:デフォルトの名無しさん mailto:sage [2009/08/07(金) 14:11:57 ]
> 理由は内緒。
馬鹿丸出し

264 名前:デフォルトの名無しさん [2009/08/07(金) 14:19:24 ]
プログラムの実行に掛かった時間を表示していて思った疑問です。

#include <ctime>
cerr << clock()/(float)CLOCKS_PER_SEC << " [s] passed." << endl;

上記のプログラムでは、プロセス開始からの時間がミリ秒の桁まで表示されるのですが
ctime の include をしない場合、秒単位の表示が出てきます。
なぜコンパイルエラーにならないのかよくわからんです。

参考にしたサイトはここ↓です
ttp://www.sasaraan.net/program/cpp/cpp_time.html
環境は WindowsXP + gcc でコマンドラインアプリケーションです。

265 名前:デフォルトの名無しさん mailto:sage [2009/08/07(金) 14:21:27 ]
そこだけ別関数として切り出すのがいいんじゃね
void hoge(int& r)
{
std::cout << r << std::endl;
}

int a=1;
int b=2;
hoge(a);
hoge(b);

266 名前:デフォルトの名無しさん mailto:sage [2009/08/07(金) 14:30:34 ]
>>264
秒単位の表示って、 0, 1, 2, ... とか?
それとも 0.0, 1.0, 2.0, ... なの?

あと、上記のプログラムって言ってコンパイルも通らないソースが貼ってあるのが怪しい。
省略したところに問題があるのかもしれない。

267 名前:デフォルトの名無しさん mailto:sage [2009/08/07(金) 14:33:27 ]
265よ
ここはC++スレだぞ何故その方向へ逸れるの?



268 名前:デフォルトの名無しさん mailto:sage [2009/08/07(金) 14:36:50 ]
参照じゃないといけない理由のほうがすごく気になるな
既存ソースの改造でもやってんのかな

269 名前:デフォルトの名無しさん mailto:sage [2009/08/07(金) 14:46:25 ]
個人的に >>256-257 ってのは同意できるな

void hoge(char **pp)
return *(*pp)++; // わかりにくい。ってかタイピングが面倒
}



void hoge(char *&rp)
{
return *rp++; // ほらきれい
}

270 名前:デフォルトの名無しさん mailto:sage [2009/08/07(金) 14:47:13 ]
voidじゃねえcharだた

271 名前:デフォルトの名無しさん mailto:sage [2009/08/07(金) 14:51:16 ]
C++ code - 22 lines - codepad
ttp://codepad.org/QgkLwIsV

このようにコンパイル時エラーになってしまうのですが、
どうすれば解決できるでしょうか?

11行目と14行目のzeroを別名(hogehogeなど)にすれば
解決するのですが、そうではなく同名のまま(zeroのまま)解決したいと
思っています。

よろしくお願いいたします。

272 名前:デフォルトの名無しさん mailto:sage [2009/08/07(金) 15:04:55 ]
>>271
メンバに同名の zero がある限り、クラス外の zero を指すなら ::zero などとスコープを
明示する必要がある。

template<typename int_t>
class MyTempl;

template<typename int_t>
bool zero(const MyTempl<int_t>& arg);

template<typename int_t>
class MyTempl
{
  int_t m_num;
public :
  MyTempl(int_t arg = 0) : m_num(arg) {}
  static MyTempl zero()
    {return MyTempl<int_t>(0);}
  friend bool ::zero<>(const MyTempl& arg);
  bool is_zero() const
  {return ::zero(*this);}
};

template<typename int_t>
bool zero(const MyTempl<int_t>& arg)
  {return arg.m_num ? true : false;}

template class MyTempl<int>;

273 名前:デフォルトの名無しさん mailto:sage [2009/08/07(金) 15:13:43 ]
>>269
そんなことは誰も問題視していない

274 名前:デフォルトの名無しさん mailto:sage [2009/08/07(金) 15:14:13 ]
More C++ Idioms/friend 関数の生成(Making New Friends) - Wikibooks
ttp://ja.wikibooks.org/wiki/More_C++_Idioms/friend_%E9%96%A2%E6%95%B0%E3%81%AE%E7%94%9F%E6%88%90(Making_New_Friends)

ここを読んではいたので、
friend bool zero<>(const MyTempl& arg);
とする方法は知っておりました。

しかし
friend bool ::zero<>(const MyTempl& arg);
この発想はありませんでした。

ありがとうございました!!

275 名前:デフォルトの名無しさん mailto:sage [2009/08/07(金) 15:20:33 ]
本来初期化しかできない参照を変な使い方して
ほら綺麗 とか言われても

276 名前:デフォルトの名無しさん mailto:sage [2009/08/07(金) 15:50:50 ]
変な使い方ってどこが?

277 名前:デフォルトの名無しさん mailto:sage [2009/08/07(金) 16:10:15 ]
ポインタと参照は原理は同じだが違うものだよ。




278 名前:デフォルトの名無しさん mailto:sage [2009/08/07(金) 17:05:08 ]
質問というか相談。以下のような多相性を目的としないクラス階層がある。

struct A {}; // 空の基底
struct B: virtual A { Foo foo; };
template<typename T> struct C: virtual A { T t; };
template<typename T> struct D: B, C<T> {}; // fooとtを両方持つ
// B, C, Dを保持するクラス、後でaをダウンキャストして使う
struct Holder { A *a; };

Holderを使う時に必要な型(Foo, T)は判っているが、A*の実際の型(B, C, D)は判らない。
この例だとAを仮想継承しないといけないが、そうするとB, C, Dのどれを実体化しても
サイズがポインタ分増えてしまう。これらを持つHolderは大量に作成されるので、
各オブジェクトのサイズは少しでも減らしたい。
どうしたらいいだろうか?やはり仮想継承するしかない?

279 名前:デフォルトの名無しさん mailto:sage [2009/08/07(金) 17:12:12 ]
>>277
> ポインタと参照は原理は同じ
って何を根拠に。

確かに
参照はポインタを使って実現している実装が多いけど
それは言語仕様には規定されていないだろ。

正確には
ポインタと参照は同じ原理で実現できる
とかだな。



280 名前:デフォルトの名無しさん mailto:sage [2009/08/07(金) 17:17:57 ]
>>278
よくわからないな・・・なんで仮想継承が必要?
普通に継承するのはだめなの?

281 名前:デフォルトの名無しさん mailto:sage [2009/08/07(金) 17:28:05 ]
オレだったら struct Bのインスタンスを持った struct Cの特殊化を struct Dの親か Dの実装にするね

282 名前:デフォルトの名無しさん mailto:sage [2009/08/07(金) 17:28:15 ]
>>264
int clock()
と仮定されて、intが返ってる可能性はないかね。

283 名前:278 mailto:sage [2009/08/07(金) 17:58:59 ]
>>280
D<T>*からA*にアップキャストするときB*経由かC<T>*経由かで
曖昧になるから仮想継承が必要…だよね?
ちなみにHolderから値を取り出すにはこんな感じの関数を使う。

Foo get_foo(const Holder &h) { return static_cast<B*>(h.a)->foo; }
template<typename T>
T get_t(const Holder &h) { return static_cast<C<T>*>(h.a)->t; }

>>281
済まないけどよくわからない…
特殊化するとA*からTを取り出すときにCを特殊化したかどうかの
情報が必要にならない?

284 名前:デフォルトの名無しさん mailto:sage [2009/08/07(金) 18:13:52 ]
クラスの宣言中、そこに直接メンバ関数を実装すると
自動的にそのメンバ関数はインライン要請がなされると
聞きました。
では
クラステンプレートで
template<typename int_t>
class MyTempl
{
public:
void foo() const{std::cout << "foo";}
};
この様にした場合、foo()はインライン関数として扱われますか?
それとも
template<typename int_t>
class MyTempl
{
public:
inline void foo() const{std::cout << "foo";}
};
とする必要がありますか?

285 名前:デフォルトの名無しさん mailto:sage [2009/08/07(金) 18:21:58 ]
>>283
つねにB経由にするなどと決めておけばいいかと
キャスト自体は曖昧な部分をちゃんと明示すれば通るし
D<T>* d = ... ;
A* a = static_cast<A*>(static_cast<B*>(d));

286 名前:デフォルトの名無しさん mailto:sage [2009/08/07(金) 18:25:58 ]
>>284
扱われます
inlineは付けても付けなくても一緒
インライン展開したくない場合は

template<typename int_t>
class MyTempl {
public: void foo() const;
};

template<typename int_t>
void MyTempl<int_t>::foo() const {
std::cout << "foo";
};

などのように別に中身を書く

287 名前:284 mailto:sage [2009/08/07(金) 18:31:54 ]
>>286
分かりやすい解説ありがとうございました。



288 名前:デフォルトの名無しさん mailto:sage [2009/08/07(金) 18:48:31 ]
逆に宣言に定義を含めてインライン化しないようにするにはどうするの?


289 名前:デフォルトの名無しさん mailto:sage [2009/08/07(金) 18:59:04 ]
インライン関数をインライン展開しないというコンパイルオプションを付けてコンパイルする
クラス定義の中に定義を書いた関数はインライン関数だと規格で決まっているから、そこはどうにもならんよ

290 名前:デフォルトの名無しさん mailto:sage [2009/08/07(金) 19:00:22 ]
>>286
テンプレート使った場合ってインライン展開されないようにできるの?
コンパイル単位的に難しい気がするんだけど

291 名前:デフォルトの名無しさん mailto:sage [2009/08/07(金) 19:06:34 ]
>>290
普通にできる
ただしクラスの定義も各関数の定義も両方ともヘッダに書く
同じものがコンパイル単位ごとにコンパイルされても、リンカが重複分を破棄する等して上手くやる

292 名前:デフォルトの名無しさん mailto:sage [2009/08/07(金) 19:10:13 ]
インライン展開は関数呼び出しのオーバーヘッドがなくなるけど
テンプレート関数はオーバーヘッドなくならんでしょ。

293 名前:デフォルトの名無しさん mailto:sage [2009/08/07(金) 19:28:56 ]
そりゃなくならない
別物だし

294 名前:デフォルトの名無しさん mailto:sage [2009/08/07(金) 21:57:42 ]
>>292
一人だけ別の話題をしているようにしか見えないぞw

295 名前:デフォルトの名無しさん mailto:sage [2009/08/07(金) 21:58:55 ]
インラインのテンプレート関数使えばいいだけじゃん

296 名前:デフォルトの名無しさん mailto:sage [2009/08/07(金) 22:05:57 ]
このスレッドは天才チンパンジー「アイちゃん」が
言語訓練のために立てたものです。

アイと研究員とのやり取りに利用するスレッドなので、
関係者以外は書きこまないで下さい。

                  京都大学霊長類研究所

297 名前:デフォルトの名無しさん mailto:sage [2009/08/07(金) 22:12:41 ]
>>294
つまり、テンプレートはそもそも淫乱展開じゃないんじゃないの?って話。



298 名前:244 [2009/08/07(金) 22:17:43 ]
やはり難しいかったでしょうか?

わかる方がおられない残念な結果となったため、質問への回答を打ち切らせていただきます。

299 名前:デフォルトの名無しさん mailto:sage [2009/08/07(金) 22:25:45 ]
アイちゃんより下がいるとは。

300 名前:デフォルトの名無しさん mailto:sage [2009/08/07(金) 22:44:16 ]
>>298
単にスレ違いなだけ。
せめて、環境依存OKと言っているとことか、WindowsならWin32APIスレのほうで聞きなさい。
まあ、そこ行っても答えが貰える保証はないけど。

301 名前:デフォルトの名無しさん mailto:sage [2009/08/07(金) 22:53:20 ]
スクリプトをC++で作るのって難しいと思うが、どうなの?

302 名前:デフォルトの名無しさん mailto:sage [2009/08/07(金) 23:06:09 ]
難しくないよ

303 名前:デフォルトの名無しさん mailto:sage [2009/08/07(金) 23:17:23 ]
class A{
A(char *buf);

}

A::A(char *buf){

buf= new char[10];
buf="gomi"

}
int main(){

char *buf
A kakuho(buf)

printf("%s",buf);

};

コンストラクタの中でメモリ確保したいんですが
できません。助けてください


304 名前:デフォルトの名無しさん mailto:sage [2009/08/07(金) 23:25:05 ]
class A{
A(char **buf);
}

A::A(char **buf){
*buf= new char[10];
strcpy(buf,"gomi");
}
int main(){
char *buf
A kakuho(&buf)
printf("%s",buf);
};

かな

305 名前:デフォルトの名無しさん mailto:sage [2009/08/07(金) 23:25:47 ]
strcpy(*buf,"gomi");だた

306 名前:デフォルトの名無しさん mailto:sage [2009/08/07(金) 23:30:19 ]
なんでchar*を使うの?メモリ的な制約か?stringとか使えばいいじゃん。

307 名前:デフォルトの名無しさん mailto:sage [2009/08/07(金) 23:31:16 ]
>>302
そなの?
COMとかActiveXなら作れるけどスクリプトはなんだか大変そうな気がして



308 名前:デフォルトの名無しさん mailto:sage [2009/08/08(土) 00:13:27 ]
>>298
せめてアイちゃんレベルにはなって欲しいな。

309 名前:デフォルトの名無しさん mailto:sage [2009/08/08(土) 00:15:33 ]
三項演算子a?b:cと
if elseを用いた構文が
意味的に同じ場合、
どちらが望ましいでしょうか?
(速さや可読性など。)







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

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

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