Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

タグ

cppとtriviaに関するkiyo_hikoのブックマーク (2)

  • abstract classで知らなかったこと、付記、派生と継承の違い

    以下のコードはwell-formedである。 struct Non_abstract { virtual void f() { } } ; struct Abstract : Non_abstract { void f() = 0 ; } ; abstractクラスは、abstractクラスではないクラスから派生されることができる。その際、pure virtual functionではないvirtual functionを、pure virtual functionとしてオーバーライドすることができる。 これが何の役に立つのか分からない。ただ、pure virtual functionがあればabstract classであるなどという、あまり文法的に美しくないC++の仕様からすると、わざわざこの挙動を禁止する理由が見当たらなかったのだろうか。 ところで、今まで私は、派生と継承の違いを明確

    kiyo_hiko
    kiyo_hiko 2013/07/30
    C++でクラス間の関係は、仕様では「派生」という表現に統一されているらしく、「継承」はメンバーに使うらしい // C++じゃない何かの本では「拡張して (extends)」とかもあった大変
  • 条件演算子 - Wikipedia

    条件演算子(じょうけんえんざんし、英: conditional operator)は、プログラミング言語の演算子で、条件文と同様な意味があるが、文ではなく値を持つ式になる。評価されると、条件式の値により異なる式が評価され、異なる値になる。 なお、C言語やC++など一部のプログラミング言語において、条件演算子とは後述する「? :」(ハテナマークとコロン) の演算子の名称である。 「If 〜 Then 〜 Else 〜」にあたる三項演算子があり、ほぼ唯一の、プログラミング言語において一般的な三項演算子である。また「If 〜 Then 〜 if」にあたる二項演算子もある。 三項演算子は、条件式・真式・偽式の3つのオペランドを結ぶ。二項演算子の場合は、条件式と、真式または偽式のいずれかの、2つのオペランドを結ぶ。 条件文との違いは、 真式・偽式は式(条件文における節のように文を置くことができない)

    kiyo_hiko
    kiyo_hiko 2012/02/15
    「CやJavaやPerlなどでは、a ? b : c ? d : e は a ? b : (c ? d : e) という意味だが、PHPの三項演算子では (a ? b : c) ? d : e なので注意が必要である」…なぬ。自分は条件演算子をcondやCASE代わりに多用するので、これは気を付けないと
  • 1