質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.45%
ファイル

ファイルとは、文字列に基づいた名前又はパスからアクセスすることができる、任意の情報のブロック又は情報を格納するためのリソースです。

include

あるファイルで定義された関数や処理を、別のファイル上でも使用できるようにするプロセスをincludeと呼びます。

Visual C++

Microsoft Visual C++はWindowsのCとC++の統合開発環境(IDE)であり、コンパイラやデバッガを含んでいます。

コンストラクタ

オブジェクト指向言語において、オブジェクトを生成時に呼び出され、データの初期化などを行なう関数・メソッドのことである。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

Q&A

解決済

1回答

14374閲覧

C++ 既定のコンストラクターがありませんについて

BRAK

総合スコア98

ファイル

ファイルとは、文字列に基づいた名前又はパスからアクセスすることができる、任意の情報のブロック又は情報を格納するためのリソースです。

include

あるファイルで定義された関数や処理を、別のファイル上でも使用できるようにするプロセスをincludeと呼びます。

Visual C++

Microsoft Visual C++はWindowsのCとC++の統合開発環境(IDE)であり、コンパイラやデバッガを含んでいます。

コンストラクタ

オブジェクト指向言語において、オブジェクトを生成時に呼び出され、データの初期化などを行なう関数・メソッドのことである。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

0グッド

0クリップ

投稿2020/06/04 03:44

編集2020/06/04 03:45

C++でinclude参照した先のコンストラクターの初期値の宣言の仕方がわかりません
VSでコードをうち、ヘッダーファイルとソースファイルに分けてコードを打っています.

C++

1コード 2//ヘッダーファイル 3#pragma once 4#include "Vector2.h" 5#include <iostream> 6using namespace std; 7//プレイヤーの初期値 8 9class Player { 10public: 11 Player(int _x, int _y); 12 Vector2 pos; 13 void Position(); 14};

C++

1コード 2//ソースファイル 3#include <iostream> 4#include"Player.h" 5using namespace std; 6//------------------ 7//プレイヤーの処理内容 8//------------------ 9 10Player::Player(int _x,int _y) { <-----ここでVector2の規定のコンストラクターがありませんのエラー(C2512) 11 pos.x = _x; 12 pos.y = _y; 13} 14 15void Player::Position() { 16 Player player(100, 200); 17 cout << player.pos.x << ", " << player.pos.y << endl; 18}

C++

1コード 2//ヘッダーファイル 3#pragma once 4#include <iostream> 5 6class Vector2 { 7public: 8 int x , y; 9 Vector2(int _x, int _y); 10 void Initial();<----ここで初期値を設定したつもりです. 11};

C++

1コード 2//ソースファイル 3#pragma once 4#include <iostream> 5#include"Vector2.h" 6using namespace std; 7//----------------- 8//ベクトルの処理内容 9//----------------- 10 11Vector2::Vector2(int _x, int _y) { 12 13 x = _x; 14 y = _y; 15} 16//初期値を設定 17void Vector2::Initial() { 18 Vector2 obj(1, 2); 19 cout << obj.x << " " << obj.y << endl; 20} 21

あと、最後は別のソースファイルを作りint main(){}で実行させるつもりです。

C++について始めたばっかりでよくわからないのですが、参考サイトと参考書をみて初期値を設定してもうまくいかったので教えていただけると助かります。
よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

episteme

2020/06/04 03:48

どこでどんな問題が起こったか明記しなさい。
cateye

2020/06/04 03:49

デフォルトコンストラクタがないから怒られます^^: →http://kaitei.net/cpp/constructors/
episteme

2020/06/04 04:04

メンバ関数 Initial() を定義すればデフォルトの初期化になるって どこの参考サイト/参考書に書いてあったんすかね?
BRAK

2020/06/04 04:05

すみません、コードの中でエラーの説明してました。 2番目のc++コードでVector2参照したときです
BRAK

2020/06/04 04:08

Initial()はサイト見た結果こうすればいけるのではということでcppの中で処理(初期値を定義)してhのクラスで宣言しました。
episteme

2020/06/04 04:08

class Player { public: Player(int _x, int _y); Vector2 pos; <--------------- ココじゃなくて? void Position(); };
episteme

2020/06/04 04:09

そのスットコドッコイなサイトのURL教えて。
BRAK

2020/06/04 04:13

Vector2 pos; <--------------- ココじゃなくて? 私もここだと思ってVector2のヘッダーファイルで 昨日Vector2(int _x = 0, int _y = 0); で宣言したのですが、あれ、エラー消えました。
BRAK

2020/06/04 04:14

すみません、自分自身がすっとこどっこなだけでした
episteme

2020/06/04 04:24

解決したんなら適切にcloseしてください。
guest

回答1

0

ベストアンサー

C++

1// Vector2.h 2#pragma once 3#include <iostream> 4 5class Vector2 { 6public: 7 int x , y; 8 Vector2(int _x, int _y); 9 Vector2() { x = 0; y = 0; } // <----これ追加 10};

あるいは

C++

1// Vector2.h 2#pragma once 3#include <iostream> 4 5class Vector2 { 6public: 7 int x , y; 8 Vector2(int _x=0, int _y=0); // <----これ変更 9};

投稿2020/06/04 03:52

episteme

総合スコア16614

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

BRAK

2020/06/04 04:14

ありがとうございます。
BRAK

2020/06/04 04:16

すみません、あと質問なのですが、ソースファイルとヘッダで宣言と処理を分けて書くっていうのがC++の一般的なコーディングの仕方で合ってますか?
episteme

2020/06/04 04:19

なにをもって"一般的"とするのかわかりませんが、 処理がほんのちょびっとならわざわざ分けることもなかろうと思ってます。 # なにをもって"ほんのちょびっと"かも決まってないけどwww
BRAK

2020/06/04 05:54

色々、教えていただいてありがとうございます。 あと、講義で反応遅れて申し訳ないです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.45%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問