constの使い方

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
こんぺいとう

constの使い方

#1

投稿記事 by こんぺいとう » 11年前

初めましてtakashiと申します。
Effective C++の第一章を読みましたが、理解に不安があるので質問します。

だいいには、constやinlineの使い方が書かれていました。

そこで、例えば簡単なアクセサメソッドの場合は、下記のような書き方で良いのでしょうか。

[user.hpp]

コード:

class User {
public:
    // アクセサをヘッダファイル内に書くのでinlineは不要
    // メンバ変数を変更しないので、constメンバ関数にする
    int getId() const { return id; }

    // 引数は関数内で変更されないのでconst
    // 引数がローカル変数としてコピーされないよう、&で参照する
    void setId(const int& id) { this->id = id; }

    // 戻り値を定数として取得するため頭にconst
    // メンバ変数を変更しないので、関数名の後にconst
    const int getFunctionId const() { return function_id; }
private:
    int id;
    static const int function_id;
}
ところで別件ですが、最近はcppファイルを使わずに、アクセサ以外の普通の関数も
hppファイルにガリガリ書くのが流行っていると聞いたことがあるのですが、本当なのでしょうか。

こんぺいとう

Re: constの使い方

#2

投稿記事 by こんぺいとう » 11年前

すみません、誤字がありました。
だいいには、constやinlineの使い方が書かれていました。
→ 第一章には、constやinlineの使い方が書かれていました。

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 14年前
住所: 東海地方
連絡を取る:

Re: constの使い方

#3

投稿記事 by softya(ソフト屋) » 11年前

このコードはコンパイル確認済みでしょうか? VS2012でもコンパイルできないです。
文法的な質問ですので、コンパイル確認されていることは大前提だと思いますが。

> hppファイルにガリガリ書くのが流行っていると聞いたことがあるのですが、本当なのでしょうか。
私は知りません、時々流行りますが。
hppはcppと区別しづらいので私は使いません。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

アバター
みけCAT
記事: 6734
登録日時: 14年前
住所: 千葉県
連絡を取る:

Re: constの使い方

#4

投稿記事 by みけCAT » 11年前

takashi さんが書きました: ところで別件ですが、最近はcppファイルを使わずに、アクセサ以外の普通の関数も
hppファイルにガリガリ書くのが流行っていると聞いたことがあるのですが、本当なのでしょうか。
hppかhか、流行っているかは別として、
テンプレート関数はヘッダに書かないと(別のソースファイルに書くのでは)使えないらしいですね。
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

アバター
へにっくす
記事: 634
登録日時: 13年前
住所: 東京都

Re: constの使い方

#5

投稿記事 by へにっくす » 11年前

・constを関数名の後につけるのは間違い。
・classの宣言の後に;がないね。

以下が参考になりますかね。
const修飾子について
21項 使えるときは、必ず const を使おう - C++ビギナーに捧ぐ EffectiveC++入門

hppは私も使いませんね。
テンプレートでよく使用されるようですが、私は使わないので。
written by へにっくす

閉鎖

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