今までVBAやjavascriptを使ってきたのですが、少しづつVisual StudioでC++を覚えようと思います。
そこで、VBAやJSで使ってきた、「function 関数名(引数)」というのはC++だとどういう記述になるのでしょうか?JSだと
関数の作成----------------------------------
function getSecond(hour, min, sec)
{
var answer = hour * 3600 + min * 60 + sec;
return(answer);
}
ここまで------------------------------------
関数の利用----------------------------------
document.write(getSecond(12, 34, 56));
ここまで------------------------------------
で値が返ってきます。
どうもクラスというのがVBAやJSにはないのでこのクラスがそうなのかと思うのですがいまいち読んでいてわかりません…。
上記のような単純な例だとどのように記述するのですか?
非常に単純な質問ですみません…。
No.4ベストアンサー
- 回答日時:
C++ だから、クラスを使わないと、ということはありません。
VB の function は、C/C++ での関数なので、#1 さんの書き方で OK です。
function 関数名( 引数 )
{
式;
return 戻り値;
}
は、C/C++ だと、
戻り値の型 関数名( 引数 )
{
式;
return 戻り値;
}
と書けます。
また、
sub プロシージャ名( 引数 )
{
式;
}
は、C/C++ では、
void プロシージャ(=関数)名( 引数 )
{
式;
}
と等価になります。
ありがとうございます。クラスを使わなくてもVBやJSのようにできるのですね。
この方法でうまくできました!
しかし、そうするとクラスはどのようなときに使うのか・・・勉強が足りないのでご紹介いただいた本などを読んでみたいと思います。
No.5
- 回答日時:
> C++ だから、クラスを使わないと、ということはありません。
賛成。
C++の利点を活かしたいなら、無理やりクラスを使うより、むしろテンプレートを使う方がよいでしょう。
template<typename T>
T getSecond(T hour, T min, T sec)
{
T answer = hour * T(3600) + min * T(60) * sec;
return answer;
}
No.3
- 回答日時:
あれ?書いたつもりが消えてましたね。
訂正します。クラスの利用----------------------------------
CTimeFunc timefunc; //インスタンスの生成。
cout << timefunc.getSecond(12, 34, 56);
ここまで------------------------------------
No.2
- 回答日時:
#1のasuncionさんの書き方はC言語の書き方でクラスじゃないです。
C++言語を学びたいんですよね?
ちゃんと本を買って学ぶことをお勧めします。
「明解 C++」 柴田 望洋 (著)
http://www.amazon.co.jp/%E6%98%8E%E8%A7%A3-C-%E6 …
これだけだと理解に苦しむと思うので、「C++ の絵本」を補助として買うことをお勧めします。
http://www.amazon.co.jp/C-%E3%81%AE%E7%B5%B5%E6% …
確かにクラスは作ったことは無いでしょうがクラスに似たものを既にあなたは利用しています。
document.writeがそれで、documentというオブジェクトのインスタンス(生成されたクラス)のwriteというメンバ関数を利用していますね。C++のクラスは、それを作るという行為です。
クラスなら、
クラスの作成----------------------------------
class CTimeFunc {
public:
int getSecond(int hour, int min, int sec)
{
int answer = hour * 3600 + min * 60 + sec;
return answer;
}
};
ここまで------------------------------------
クラスの利用----------------------------------
timefunc; //インスタンスの生成。
cout << timefunc.getSecond(12, 34, 56);
ここまで------------------------------------
ただ関数をクラス化したので、オブジェクト指向としては意味を成していませんが、こんな風に書けると言うことで。
No.1
- 回答日時:
いろいろな書き方がありますが、一例を挙げると下記のようになります。
#include <stdio.h>
int getSecond(int hour, int min, int sec)
{
return hour * 3600 + min * 60 + sec;
}
int main(void)
{
printf("%d秒\n", getSecond(12, 34, 56));
return 0;
}
(注)インデントのため、全角空白を使っています。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・ちょっと先の未来クイズ第4問
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・ハマっている「お菓子」を教えて!
- ・最近、いつ泣きましたか?
- ・夏が終わったと感じる瞬間って、どんな時?
- ・10秒目をつむったら…
- ・人生のプチ美学を教えてください!!
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
どこからも呼ばれていない無意...
-
A・B・Cクラスとは?
-
java eclipse 型に解決できません
-
配列の重複する値とその個数を...
-
同一パッケージにあるクラスが...
-
dllと同じプロジェクトにする方法
-
命名規約は連番でいいのか?
-
main()を持つクラスが2つ以上...
-
修学旅行での演芸大会の出し物...
-
UMLのクラス図はmain()も含むん...
-
コンボボックスのマウスホイー...
-
ATLとMFCの違いは何でしょうか?
-
VBAもしくはVB6:クラスの中で...
-
ネスカフェ エクセラ と UCCク...
-
tomcat上でのpropertiesファイ...
-
定数はどこでまとめますか?
-
1 つのヘッダファイルに複数の...
-
ヤマハのジュニア科に通っています
-
JAVAで他ライブラリのクラスを...
-
eclipse でクラスに色
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
配列の重複する値とその個数を...
-
java eclipse 型に解決できません
-
どこからも呼ばれていない無意...
-
main()を持つクラスが2つ以上...
-
UMLのクラス図はmain()も含むん...
-
A・B・Cクラスとは?
-
同じクラスにならない確率を教...
-
eclipse でクラスに色
-
IPアドレスの3バイト目の呼び方
-
修学旅行での演芸大会の出し物...
-
「天声人語」をインターネット...
-
共通で使う関数を集めたクラス...
-
3年間同じクラスになる確率
-
dllと同じプロジェクトにする方法
-
同一パッケージにあるクラスが...
-
重複エラーを解決するには
-
ネスカフェ エクセラ と UCCク...
-
IPアドレスのクラスAを取得して...
-
1 つのヘッダファイルに複数の...
-
複数のクラスで共通した関数を...
おすすめ情報