<?xml version="1.0"?>
<clause number="17.1" title="Class declarations">
  <paragraph>A <non_terminal where="17.1">class-declaration</non_terminal> is a <non_terminal where="16.5">type-declaration</non_terminal> (<hyperlink>16.5</hyperlink>) that declares a new class. <grammar_production><name><non_terminal where="17.1">class-declaration</non_terminal></name> : <rhs><non_terminal where="24.2">attributes</non_terminal><opt/><non_terminal where="17.1.1">class-modifiers</non_terminal><opt/><keyword>class</keyword><non_terminal where="9.4.2">identifier</non_terminal><non_terminal where="17.1.2">class-base</non_terminal><opt/><non_terminal where="17.1.3">class-body</non_terminal><terminal>;</terminal><opt/></rhs></grammar_production></paragraph>
  <paragraph>A <non_terminal where="17.1">class-declaration</non_terminal> consists of an optional set of attributes (<hyperlink>24</hyperlink>), followed by an optional set of  <non_terminal where="17.1.1">class-modifier</non_terminal>s (<hyperlink>17.1.1</hyperlink>), followed by the keyword class and an identifier that names the class, followed by an optional <non_terminal where="17.1.2">class-base</non_terminal> specification (<hyperlink>17.1.2</hyperlink>), followed by a <non_terminal where="17.1.3">class-body</non_terminal> (<hyperlink>17.1.3</hyperlink>), optionally followed by a semicolon. </paragraph>
</clause>
