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

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

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

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

Q&A

解決済

3回答

643閲覧

【C++】set()の意味と使い方について。

yhirasawa

総合スコア2

C++

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

0グッド

0クリップ

投稿2021/11/11 06:51

お世話になります。

ソースコードの解析をしているのですが、いきなり下記のような関数が出てきました。

変数->set("文字列", 変数.toUtf8().constData());

set()について調べたのですが、なかなか答えが見つかりません。

a[0].set_profile(引数)

set_profile(引数)も宣言もなしにいきなり出てきました。

こちらの使い方や、意味を知っている方お願いします。

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

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

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

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

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

fana

2021/11/12 02:59

> ソースコードの解析 とのことですが,ソースコード全てが手元にある状態なのでしょうか? ・あるなら → set_profile とかを文字列検索すれば必ずどこかにあるでしょう. ・ないなら → 手元に無いソースで定義されている.その場合は不明となりますね.
guest

回答3

0

ベストアンサー

まずは、変数 の型を調べましょう。Foo* のようなポインタ型の可能性が高いです。そして、型 Foo のメンバ関数 set() を調べてください。

a の型を調べましょう。Foo a[] のような配列か Foo* a のようなポインタの可能性が高いです。そして、型 Foo のメンバ関数 set_profile() について調べてください。

型がわからないと、それらの関数が何をするものなのかは全くわかりません。

投稿2021/11/11 06:59

編集2021/11/11 07:02
int32_t

総合スコア21012

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

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

0

こちらの使い方や、意味を知っている方お願いします

さあ? だって場合によるから。
『会いたい』と書いてありますが、誰と会いたいのでしょうか。みたいな質問です。
そりゃ、場合によるでしょ。LINEとかで質問者さんに会いたいと言えば質問者さんに対してだし、
歌詞で『会いたい』とあればその歌手が思い描いた人だろうし……

プログラミングっていうのは『こう書けばいい』というものではありません。
現実世界のシミュレーション』です。

とりあえず、今回の場合はa[0]が何者なのかを調べましょう。
パッと見、配列ですがこのaの型はなんでしょうか。(配列じゃなくてstd::vectorとかの可能性もあるけど)

もし仮に std::vector<Person> a とあれば aはPerson用のstd::vectorですね。
で a[0] ってことは その 0番目の Personのデータを使っています。

そして、set_profileとは何者でしょうか。a[0]が何者なのかはまだ私には分かりませんが、少なくともset_profileはそのa[0]が持っているメンバですね。メンバ関数です。

set_profile(引数)も宣言もなしにいきなり出てきました。

そんなことは100%あり得ません。仮にあったとしても必ずどこかで定義しています。
ヘッダファイルなり、aファイル(MinGW等)なり、libファイル(VC++)なり……

なのでどこかに記述されているはずです。
今回の場合はクラスっぽいですね。(やろうと思えば構造体にメンバ関数を付ける事もできるが)
まずはそのaの型を調べて、その型の定義(クラス定義や構造体定義)を確認してください。

ふつーに考えれば、『メンバ変数にセットしている』、つまり、いわゆるgetter/setterとしてのメンバ関数でしょうね。でもやろうと思えば readFileという関数名で中身は 100 を返すだけ……みたいな変なやり方もできなくはないです。(これをチーム開発でやったら大顰蹙買うだろうけど)

なのでまずは定義を確認してください。普通、コードを読むときはこれを当たり前のようにやります。

投稿2021/11/11 07:21

BeatStar

総合スコア4958

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

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

0

ええと、それはその変数のメソッドなのではないでしょうか?
その変数の型はわかりますか?

投稿2021/11/11 07:00

WoodenHamlet

総合スコア306

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問