C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

operator演算子で「error C4430」の解決


(過去ログ 4 を表示中)

[トピック内 5 記事 (1 - 5 表示)]  << 0 >>

■4217 / inTopicNo.1)  operator演算子で「error C4430」の解決
  
□投稿者/ ゆうじ 二等兵(11回)-(2006/06/07(Wed) 14:28:34)

分類:[VC++(C++/CLI)] 


分類:[VC++(C++/CLI)] 

お世話になります。ゆうじです。

VC++6.0で作成されたソースコードをVC++2005に
移行する作業で困っております
(VC++6.0ではリビルドでエラーが発生しません。)

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

開発環境は、以下のとおりです。
 WinXP Pro SP2
 VS2005 VC++2005

詳細は以下のとおりです。
ソース「2.ソース」で、ソリューションのリビルドを行うと、
エラー「1.エラー内容」が3件発生します。

1.エラー内容
エラー error C4430: 型指定子がありません - int と仮定しました。
メモ: C++ は int を既定値としてサポートしていません

2.ソース
@クラスAヘッダファイルの抜粋
class 【クラスA】
{
public:

<省略>

operator=(const 【クラスA】 &sss);  //←エラー発生(2件)
int m_bbb;

<省略>
};

@クラスA実体ファイルの抜粋
【クラスA】::operator=(const 【クラスA】 &sss)
{                    //←エラー発生(1件)
m_bbb=sss.m_bbb;

<省略>
}

小生はVC++の経験が浅く、エラーを解決できません。
エラーを解決する方法に心当たりのある方、ご教示お願いします。
よろしくお願いいたします。


0
引用返信 編集キー/
■4218 / inTopicNo.2)  Re[1]: operator演算子で「error C4430」の解決
□投稿者/ Blue 伍長(43回)-(2006/06/07(Wed) 14:40:31)

分類:[VC++(C++/CLI)] 

普通に void が抜けているんじゃないでしょうか?

> operator=(const 【クラスA】 &sss);  //←エラー発生(2件)
void operator=(const 【クラスA】 &sss);

> 【クラスA】::operator=(const 【クラスA】 &sss)
void 【クラスA】::operator=(const 【クラスA】 &sss)

0
引用返信 編集キー/
■4219 / inTopicNo.3)  Re[2]: operator演算子で「error C4430」の解決
□投稿者/ ゆうじ 二等兵(12回)-(2006/06/07(Wed) 14:57:21)

分類:[VC++(C++/CLI)] 

Blueさん早々の返信ありがとうございました。
ご指摘の方法で解決できました。
ヘッダのみ「void」を付けていました。
文法が理解できておらず、単純なミスで申し訳ありません。
ありがとうございました。


解決済み
引用返信 編集キー/
■4220 / inTopicNo.4)  Re[3]: operator演算子で「error C4430」の解決
□投稿者/ Blue 伍長(44回)-(2006/06/07(Wed) 15:02:14)

分類:[VC++(C++/CLI)] 

2006/06/07(Wed) 15:21:30 編集(投稿者)

あ〜でも、voidよりも【クラスA】& を返すほうが一般的かな。
(a=b=cってのがvoidじゃできませんから)

sample)
#include <iostream>

class Foo {
private:
int m_n;
public:
Foo() : m_n( 0 ){}
Foo& operator = ( const Foo& f ) {
this->m_n = f.m_n;
return *this;
}

void setn( const int n ) { this->m_n = n; }
friend std::ostream& operator << ( std::ostream& os, const Foo& f ) {
return os << f.m_n;
}
};

int main() {
Foo f1, f2, f3;

f1.setn( 10 );
f3 = f2 = f1; // ※
f1.setn( 5 );

std::cout << "f1 :" << f1 << std::endl;
std::cout << "f2 :" << f2 << std::endl;
std::cout << "f3 :" << f3 << std::endl;

return 0;
}


解決済み
引用返信 編集キー/
■4236 / inTopicNo.5)  Re[4]: operator演算子で「error C4430」の解決
□投稿者/ ゆうじ 二等兵(13回)-(2006/06/08(Thu) 19:32:32)

分類:[VC++(C++/CLI)] 

Blueさんありがとうございます。
確認が遅れまして申し訳ありません。
参考にして修正してみます。
とても勉強になりました。
現在大規模な修正中なので、
またわからないことが見つかったら質問します。


解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -