スレを勃てるまでもないC/C++の質問はここで 14
952 :
デフォルトの名無しさん:2010/05/07(金) 11:11:52
>>943 これなら同じになるんじゃない?
/* Cなら */
struct st;
struct st a;
struct st *b;
b = &a;
// C++なら
struct st;
st a;
st *b;
b = &a;
>>952 いや、違う型の構造体へのポインタへ代入する場合ね
954 :
デフォルトの名無しさん:2010/05/07(金) 18:42:41
>>953 どういう意味?
struct st1;
struct st2;
struct st1 a;
struct st2 *b;
b = (struct st2*)&a;
ってこと?
それでもbと&aは同じだよね?
struct st{};
main(){
struct st a;
struct st *b;
b=&a;
}
struct{}a,*b;
main(){
b=&a;
}
>>954 struct A {
int a;
};
struct B {
int b;
};
struct AB : public A, B {
}
AB ab;
B* b = &ab;
// b != &ab となる
アップキャストとか壮大な話になってきたな。
hogeというclassで
friend ostream& operator<<(ostream& out, hoge h);
のように宣言して、関数の中身はクラスの外に別書きする場合、書き始めはどうなりますか?
friend ostream& hoge::operator<<(ostream& out, hoge h);
<<960
ありがとうございます
959
ですが、960で書き始めるとfriendがクラスの外にあるって内容の警告が出ます。
あと、must exactry take one argumentってエラーも出ました。
関数の宣言オンリーではなく、関数の中身をクラスの外に書く場合の書き方がわかる方お願いします
friend書いちゃだめ
>>963 そうそう頭ごなしに否定しなくても friendがかわいそうじゃないか
たとえばlhsが自クラスでは無い場合。
complex& operator+(double lhs,const complex& rhs);
たとえばlhsとrhsが対称な場合
void swap(hoge& lhs,hoge& rhs);
friendを使うのは、こんな場合にメンバを外部に晒さずに実装できること。
>>962 クラスの外がだめならクラスの中に書けばいいじゃない。
class hoge
{
friend void func1(int);
};
void func1(int)
{
}
>>966,965
ありがとうございます
クラスの外に書くときにフレンドは要らないとわかったのですが、
voidではなく、istreamやostreamなどの場合も有効でしょうか?
must take exactly one argumentというエラーが出てしまいます。。
>>964 その場合もfriend使わないだろ普通
そうさ・・・俺らは誰ともフレンドにはなれないのさ・・・
俺は孤高の戦士
孤高のプログラマはフレンドなど当てにせん
つまり、プライベートは見せられない、って事ですね。 非リア充だけに
#define private public
>>975 だからそう言う未定義動作をだな…(ry
ヘッダファイルの先頭に
#if defined(private) || defined(protected) || defined(public) || defined(class) || defined(struct)
#error you must die!
#endif
って書くべきだろうか。
>>975みたいなのやるルーピー現実に存在するのか?
その手の小細工するより、エディタの置換機能で
private を public に置き換えたほうがいいかと
singletonでgetInstanceをstaticなメンバ関数ではなく、
namespaceに属する関数で実装しているコードを発見しますた
お前らはどう思いますか?
namespace hoge {
Test getInstance();
}
class Test {
public:
Test();
~Test();
}
>>980 諸般の事情からfriend関数で実装したのかな?と思った
singleton の意味ねーなーとしか
でも理由は何かあるんだろうな
何だろう?
>>983 別にこのまま書かれてた、って話じゃないと思うの
え、
>>980はSingletonにならないだろ…
つまり・・・・・どういうことだってばよ?
なんかVIPPERが紛れ込んでる予感ェ・・・
992 :
983:2010/05/09(日) 03:35:06
>>987 それは分かるけど、
>>980を見る限り、発見したというコードが
本当にシングルトンだったのかすら疑問に思えるのよ。
唯一のオブジェクトしか扱ってないならシングルトンなんだろうと思うけど
>>992 >本当にシングルトンだったのかすら疑問に思える
俺もうっすらそんな気はしてるw でもそれはそれとして、
質問は単にどう思うかってだけなのでどう思うかだけ答えればいいかなとw
あ、なるほど
戻り値の型が参照でもポインタでもないわなw
乙乙
乙
梅
梅完
1001 :
1001:
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。