今、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で質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# const char** p;のとき、free(p)でC4090エラーとなるのはなぜですか 3 2023/03/31 16:28
- C言語・C++・C# C言語のエラーについて 2 2022/07/11 13:56
- Java javaでのプログラム(配列)について質問です. 2 2022/10/14 22:27
- Java Java プログラム public class Main { public static void 3 2023/08/10 23:46
- C言語・C++・C# C++のcase文の書き方 4 2023/02/24 20:50
- その他(プログラミング・Web制作) 十進BASICでの再帰についての質問です。 2 2022/11/18 09:17
- C言語・C++・C# C言語の課題が出たのですが自力でやっても分かりませんでした。 要素数がnであるint型の配列v2の並 3 2022/11/19 17:41
- C言語・C++・C# カードシャッフルのブログラムを使ってc言語でブラックジャックをしたい 2 2022/04/12 15:13
- Java 直し方について教えて頂きたいです。 4 2022/08/13 02:11
- C言語・C++・C# c言語の問題です 課題1 (二分探索木とセット) 大きさ size の配列 array を考える。す 2 2023/01/10 21:08
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
関数内の変数に<summary>コメン...
-
内部クラスから別の内部クラス...
-
クラス間でのデータ参照
-
Java リフレクションについて
-
javaの配列について質問です。
-
SwingでgetContentPaneのエラー...
-
C#のクラスライブラリでメッセ...
-
C#でほかのファイルにある自作...
-
super.paint(g)を呼び出す意...
-
構造 他のクラスの構造体を別...
-
C++でfriendクラスにしているの...
-
範囲外の数値を代入したらエラ...
-
無名パッケージからのインポート
-
C++/C#間での構造体の引き渡し...
-
static変数を持ったクラスを継...
-
内部クラスのインスタンスを外...
-
dllエクスポート時のdeclspec(d...
-
親クラスから子クラスへアクセス。
-
Strategyパターンを用いた実装...
-
(クラス名.this.メソッド)って...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
クラス間でのデータ参照
-
範囲外の数値を代入したらエラ...
-
関数内の変数に<summary>コメン...
-
c++,ある関数のクラスから別の...
-
C#にて別クラスの関数を使いたい
-
java-別クラスの変数の使い方を...
-
C++でfriendクラスにしているの...
-
a href="..." とServlet
-
親クラスから子クラスへアクセス。
-
構造 他のクラスの構造体を別...
-
Java リフレクションについて
-
import と extends について
-
C#でほかのファイルにある自作...
-
C#のクラスライブラリでメッセ...
-
Java
-
アップキャスト、ダウンキャス...
-
無名パッケージからのインポート
-
違うクラスからの変数の共有化
-
SwingでgetContentPaneのエラー...
-
ひとつのファイルにクラスは1つ?
おすすめ情報