C2280 削除された関数を使用しようとしています というエラーが出たのですが…

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
アバター
Ofu
記事: 11
登録日時: 7年前
連絡を取る:

C2280 削除された関数を使用しようとしています というエラーが出たのですが…

#1

投稿記事 by Ofu » 7年前

初めまして、未熟者のOfuと申します。どうぞよろしくお願いいたします。
私はWindows10でVisual Studio Community 2015とDXライブラリを使っており、現在マップを表示してキャラを動かすということをやりたいのですが、下記のようなコード(エラーが起きた原因っぽい部分のみ)で "C2280 CharaData::CharaData(void) 削除された関数を使用しようとしています" というよくわからないエラーが出てきたのですが、何が原因なのか、どう直せばいいのかわかりません。誰か教えて頂けないでしょうか。

コード:

/* CharaData.h */
// 構造体群
struct ItemData {							// アイテムデータ 
	const int ItemCode;							// アイテムコード
	int Graphic;								// グラフィックデータ
};

struct CharaData {							// キャラクターデータ
	const int CharaCode;						        // キャラコード
	int Graphic[64];							       // キャラのグラフィックハンドル変数
	int X, Y;									      // キャラの座標変数
	int HP, MP, MHP, MMP;						     // HPとMP,最大HPと最大MP
	int Atack, Defense, MinAtack, MinDefense;	    // 攻撃力と守備力,攻撃力減少率と守備力減少率
	int Speed;									   // 移動スピード
	CharaState State;							  // 状態異常
	int Level;									 // レベル
	int MinArea, MaxArea;						// 出現階層
};

// ここまで



// キャラデータ
// プレイヤー
extern CharaData Inaha;						// 主人公(イナハ)のキャラデータ変数

/* 中略 */

コード:

/* CharaData.cpp */
#include "CharaData.h"

// キャラデータ 初期化もここですること
// プレイヤーキャラ
CharaData Inaha;			// 主人公(イナハっていう名前)のキャラデータ変数 コンパイラはここがエラー原因として指摘したのですが…

/* 中略 */

コード:

/* LoadGraph.cpp */
#include "LoadGraph.h"

int MapChip1[MapChip1X * MapChip1Y];

int MapData[][MapLayer][ChipY][ChipX] = {
/* 中略 */

int LoadGameImage(){	// ゲーム使用画像インプット

	// キャラ画像インプット
	// プレイヤー
	LoadCharaChip("Material\\CharaChip\\Inaha.png", Inaha.Graphic);					// イナハ

	// モンスター
	LoadCharaChip("Material\\CharaChip\\スライム.png", Slime.Graphic);				// スライム

	LoadCharaChip("Material\\CharaChip\\ばけトマト.png", BakeTomato.Graphic);		// ばけトマト

	// ここまで


	// マップチップインプット
	// 標準
	LoadDivGraph("Material\\MapChip\\MapChip1.png", MapChip1X*MapChip1Y , MapChip1X, MapChip1Y, CHARA_CHIP_SIZE, CHARA_CHIP_SIZE, MapChip1);

	// オートタイル

	// ここまで


	// アイテム画像インプット
	// 普通
	Zassou.Graphic = LoadGraph("Material\\ItemChip\\Grass.png");		// 雑草

	// 装備

	// ここまで


	return 0; // 読み込み成功なら0
}



int DrawMap() {		// マップ描画
	
	for (int DrawedLayer = 0; DrawedLayer < MapLayer-2; DrawedLayer++) {	// マップ描画ループ

		for (int DrawedY = 0; DrawedY < ChipY; DrawedY++) {	

			for (int DrawedX = 0; DrawedX < ChipX; DrawedX++) {

				int DrawMapData = MapData[0][DrawedLayer][DrawedY][DrawedX]; // マップマスデータ読み込み

				if (DrawMapData <= 0) DrawGraph(DrawedX*ChipSize, DrawedY*ChipSize, MapChip1[DrawMapData], TRUE); // マップマス描画 チップ番号0ならやらない

			}
		}
	}
	return 0;
}


int LoadCharaChip(const TCHAR* FileName, int* HandleBuf) {		// キャラチップ読み込み
	LoadDivGraph(FileName, CHARA_CHIP_X*CHARA_CHIP_Y, CHARA_CHIP_X, CHARA_CHIP_Y, CHARA_CHIP_SIZE, CHARA_CHIP_SIZE, HandleBuf);
	return 0;
}

コード:

/* GameMain.cpp */
/* 中略 */
void InitGame() { // ゲームスタート時処理

	for (int CountedY = 0; CountedY < ChipY; CountedY++) {				// 主人公位置検査
		for (int CountedX = 0; CountedX < ChipX; CountedX++) {

			int CharaPosition = MapData[0][4][CountedY][CountedX];			// 座標検査

			if (CharaPosition == CHARACODE_Inaha) {
				Inaha.X = CountedX , Inaha.Y = CountedY;					// 主人公座標セット
				MapData[0][4][CountedY][CountedX] = 0;						// 後始末
			}
		}
	}

	return;
}
初投稿なので、なにか問題等ありましたら申し訳ございません。

あんどーなつ
記事: 171
登録日時: 7年前
連絡を取る:

Re: C2280 削除された関数を使用しようとしています というエラーが出たのですが…

#2

投稿記事 by あんどーなつ » 7年前

トピックとは関係ないのですが、Visual StudioのCommunity Editionのライセンス条項に関する日本語の情報ってどこかにないですか?

自分はこわいからProfessional使ってます。

あんどーなつ
記事: 171
登録日時: 7年前
連絡を取る:

Re: C2280 削除された関数を使用しようとしています というエラーが出たのですが…

#3

投稿記事 by あんどーなつ » 7年前

Ofu さんが書きました:"C2280 CharaData::CharaData(void) 削除された関数を使用しようとしています"
MSDNでC2280を検索すると下記ページがヒットしましたが、このエラーではないみたいですね。
https://msdn.microsoft.com/ja-jp/librar ... s.71).aspx

エラーメッセージの「C2280」をクリックするとヘルプのWebページが開くのではないかと思います。そのページを教えてもらえますか?


アバター
a5ua
記事: 199
登録日時: 13年前

Re: C2280 削除された関数を使用しようとしています というエラーが出たのですが…

#5

投稿記事 by a5ua » 7年前

CharaData構造体がconstメンバー変数CharaCodeを持っているため、
デフォルトコンストラクタによるオブジェクト構築ができないことがエラーの原因と思われます。
①CharaCodeのconstを外すか、
②以下のように、CharaCodeを初期化するためのコンストラクタを定義する必要があるでしょう。

コード:

struct CharaData {                          // キャラクターデータ
    CharaCode(int code) : CharaCode(code){}
    const int CharaCode;                                // キャラコード
    int Graphic[64];                                   // キャラのグラフィックハンドル変数
    int X, Y;                                         // キャラの座標変数
    int HP, MP, MHP, MMP;                            // HPとMP,最大HPと最大MP
    int Atack, Defense, MinAtack, MinDefense;       // 攻撃力と守備力,攻撃力減少率と守備力減少率
    int Speed;                                     // 移動スピード
    CharaState State;                             // 状態異常
    int Level;                                   // レベル
    int MinArea, MaxArea;                       // 出現階層

アバター
Ofu
記事: 11
登録日時: 7年前
連絡を取る:

Re: C2280 削除された関数を使用しようとしています というエラーが出たのですが…

#6

投稿記事 by Ofu » 7年前

a5uaさん、ありがとうございました、やはりメンバにconstをつけるのはまずかったみたいですね。
CharaData構造体とItemData構造体のCharaCodeとItemCodeについてたconstを外せば正常終了しました。
 

コード:

struct ItemData {							// アイテムデータ 
	int ItemCode;							// アイテムコード
	int Graphic;								// グラフィックデータ
};

struct CharaData {							// キャラクターデータ
	int CharaCode;						        // キャラコード
	int Graphic[64];							       // キャラのグラフィックハンドル変数
	int X, Y;									      // キャラの座標変数
	int HP, MP, MHP, MMP;						     // HPとMP,最大HPと最大MP
	int Atack, Defense, MinAtack, MinDefense;	    // 攻撃力と守備力,攻撃力減少率と守備力減少率
	int Speed;									   // 移動スピード
	CharaState State;							  // 状態異常
	int Level;									 // レベル
	int MinArea, MaxArea;						// 出現階層
};

アバター
あたっしゅ
記事: 664
登録日時: 13年前
住所: 東京23区
連絡を取る:

Re: C2280 削除された関数を使用しようとしています というエラーが出たのですが…

#7

投稿記事 by あたっしゅ » 7年前

>トピックとは関係ないのですが、Visual StudioのCommunity Editionのライセンス条項に関する日本語の情報ってどこかにないですか?

https://www.microsoft.com/ja-jp/dev/pro ... unity.aspx

これじゃ、不十分ですか ?
VTuber:
東上☆海美☆(とうじょう・うみみ)
http://atassyu.php.xdomain.jp/vtuber/index.html
レスがついていないものを優先して、レスするみみ。時々、見当外れなレスしみみ。

中の人:
手提鞄あたッしュ、[MrAtassyu] 手提鞄屋魚有店
http://ameblo.jp/mratassyu/
Pixiv: 666303
Windows, Mac, Linux, Haiku, Raspbery Pi, Jetson Nano, 電子ブロック 持ち。

あんどーなつ
記事: 171
登録日時: 7年前
連絡を取る:

Re: C2280 削除された関数を使用しようとしています というエラーが出たのですが…

#8

投稿記事 by あんどーなつ » 7年前

あたっしゅ さん

十分です。
(しかし、そのように書かれていたからとしても長年Visual Studioを触ってきたおじさんには眉唾物なのですよ)

閉鎖

“C言語何でも質問掲示板” へ戻る