今、Visual C++(CLR)を使って、MultiClassという名前のクラスを作っています。
クラスの作り方は大体わかったのですが、
疑問が出ました。以下のように記述するとエラーが発生してしまいます
//クラスのヘッダーファイル
#pragma once
ref class MultiClass
{
public:
void MultiClass(void);
};
//クラスのCPPファイル
#include "StdAfx.h"
#include "MultiClass.h"
void MultiClass::MultiClass(void)
{
}
//エラー名
エラー1error C2380: 前の型 'MultiClass' (コンストラクタが戻り値の型を返すか、またはクラス名を再定義しています。)
エラー2error C2533: 'MultiClass::{ctor}' : コンストラクタの宣言に戻り値の型が含まれています。
ヘッダーで先頭voidを消して、CPPの先頭voidを消したら正常に
動作するのですが、普通、
戻り値 メソッド名 (引数)
なのに、なぜエラーが発生するのですか?
さらに2行目以降はなぜ、
void を先頭につけないと
エラー2error C4430: 型指定子がありません - int と仮定しました。メモ: C++ は int を既定値としてサポートしていません
というエラーが発生するのでしょうか?
ネットで調べてもまったくわかりません
わかる方お願いします
No.1ベストアンサー
- 回答日時:
クラス名と同じ名前のメンバ関数を定義する事はできません。
クラス名と同じ名前のメンバ関数は,コンストラクタとして扱われます。
# コンストラクタは,名前を持ちません。記述上,クラスと同じ名前の関数として定義しますが。
コンストラクタは,戻り値の型を記述「してはいけません」。
これが,C2380/C2533の原因です。
コンストラクタ・デストラクタ・operator関数を除く通常の関数は,
必ず戻り値の型を明示しなければなりません。
これが,C4430の原因です。
なお,C4430のメモを見るとCでは省略可能のように見えますが,標準Cにおいては省略できなくなっています。
# 1999年の改正による。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・ちょっと先の未来クイズ第4問
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・ハマっている「お菓子」を教えて!
- ・最近、いつ泣きましたか?
- ・夏が終わったと感じる瞬間って、どんな時?
- ・10秒目をつむったら…
- ・人生のプチ美学を教えてください!!
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
C#にて別クラスの関数を使いたい
-
クラス間でのデータ参照
-
範囲外の数値を代入したらエラ...
-
C++でfriendクラスにしているの...
-
C#のクラスライブラリでメッセ...
-
関数内の変数に<summary>コメン...
-
c++,ある関数のクラスから別の...
-
キャストについて教えてください
-
型Containerのメソッドadd(S...
-
Eclipseを用いたJARファイル作...
-
【java applet】他のクラスを呼...
-
アップキャスト、ダウンキャス...
-
ClassLoader.getSystemResource...
-
javaのメソッドの戻り値について
-
C# インターフェイスの実装
-
C++ クラス名の前のdefine
-
Java リフレクションについて
-
ひとつのファイルにクラスは1つ?
-
visual studioのデザイナ画面で...
-
JAVAのjsonの扱いについて
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
関数内の変数に<summary>コメン...
-
c++,ある関数のクラスから別の...
-
範囲外の数値を代入したらエラ...
-
クラス間でのデータ参照
-
構造 他のクラスの構造体を別...
-
C#にて別クラスの関数を使いたい
-
C#のクラスライブラリでメッセ...
-
C# インターフェイスの実装
-
C++でfriendクラスにしているの...
-
継承したクラス側のクラス名の取得
-
Java リフレクションについて
-
ひとつのファイルにクラスは1つ?
-
オブジェクトのデータをもとにX...
-
親クラスから子クラスへアクセス。
-
visual studioのデザイナ画面で...
-
Java
-
import と extends について
-
無名パッケージからのインポート
-
C#でほかのファイルにある自作...
-
C# log4netの使い方
おすすめ情報