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

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

新規登録して質問してみよう
ただいま回答率
85.50%
Visual C++

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

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

Q&A

解決済

4回答

2192閲覧

C++でstring型のようなものを自作したい

nicoyou

総合スコア129

Visual C++

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

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

0グッド

0クリップ

投稿2019/06/27 06:59

編集2019/06/27 07:13

C++でstring型のように関数のような効果を持った構造体を定義したいのですが、可能でしょうか?
また、その型同士け計算できるようにしたいです
言葉で説明するのが難しいのでやりたいことを下にコードで書きます
もし、可能ならやり方を教えていただけると嬉しいです
調べても解説サイトを見つけることができなかったのでURLを乗せていただけるだけでも助かります

C++

1typedef struct { 2 float x; 3 float y; 4} vector2_t; 5 6 int main() 7 { 8 vector2_t a, b, c; 9 a.x = 1; 10 a.y = 2; 11 b.x = 3; 12 b.y = 4; 13 14 c = a + b; // Cにそれぞれのx同士、y同士が足された値が入る 15 float d = a.all(); // dに a.x + a.y が代入される(このような関数を複数設定したい) 16 17}

win10 VC++2017 コンソールアプリケーション
無言の回答依頼すみませんm(__)m

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

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

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

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

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

ozwk

2019/06/27 07:04

CなのかC++なのかどっちですか
nicoyou

2019/06/27 07:06

C++です、分かりにくくてすみません
nskydiving

2019/06/27 07:10

C言語とC++は別の言語ですので、タイトルとタグを修正した方が良いと思います。
nicoyou

2019/06/27 07:16

変更しました お二方ありがとうございますm(__)m
guest

回答4

0

ベストアンサー

二次元ベクトルのクラスならすでに公開されているものがあるので、参考にされるのが良いかと思います。

参考:Vec2 クラスを作る(モダンな C++ クラスデザインのためのチュートリアル)
https://qiita.com/Reputeless/items/96226cfe1282a014b147

投稿2019/06/27 07:18

nskydiving

総合スコア6500

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

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

nicoyou

2019/06/27 07:21 編集

ご回答ありがとうございます 確認してきますm(__)m
nicoyou

2019/06/27 08:12

教えていただいたサイトが一番わかりやすかったのでBAに選ばさせていただきました ありがとうございました
guest

0

「C++ メンバ関数」
「C++ 演算子 オーバーロード」

で検索

またはここを全部読む
ロベールのC++教室

投稿2019/06/27 07:14

ozwk

総合スコア13512

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

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

nicoyou

2019/06/27 07:17

ご回答ありがとうございます まず、上にあげていただいた単語で調べてきます
guest

0

Cにそれぞれのx同士、y同士が足された値が入る

C言語ではstruct同士に演算を定義することはできません(C++なら可能ですが)。


(訂正を踏まえて)

演算子オーバーロードといって、operator 演算子名というようなメソッドなどを立てて処理を書いていきます。

投稿2019/06/27 07:12

編集2019/06/27 07:13
maisumakun

総合スコア145121

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

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

nicoyou

2019/06/27 07:13

すみません、C言語と書いてしまいましたが、っ正しくはC++です
nicoyou

2019/06/27 07:17

ご回答ありがとうございます これを踏まえて調べてきます
guest

0

可能かどうかじゃなくて、あなたがやる、ってことでしょ。
がんばってください。

投稿2019/06/27 07:04

y_waiwai

総合スコア87719

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

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

nicoyou

2019/06/27 07:09 編集

上のように使える構造体の書き方がどれだけ調べても出てこなかったので、どのようにすれば出来るのかわかりません なので質問させていただきましたm(__)m
y_waiwai

2019/06/27 07:13

あなたが自分で自作したいってはなしじゃないの? 世の中にすでにあるものならそれを使えばいいやん。
nicoyou

2019/06/27 07:14

そうですよ...? >世の中にすでにあるものならそれを使えばいいやん。 それを見つけるために調べるべき"専門用語"等が分からないので質問させていただきましたm(__)m
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問