class (C++)
A palavra-chave class
declara um tipo de classe ou define um objeto de um tipo de classe.
Sintaxe
[template-spec]
class [ms-decl-spec] [tag [: base-list ]]
{
member-list
} [declarators];
[ class ] tag declarators;
Parâmetros
template-spec
Especificações de modelo opcionais. Para obter mais informações, confira Modelos.
class
A palavra-chave class
.
ms-decl-spec
Especificação de classe de armazenamento opcional. Para obter mais informações, confira a palavra-chave __declspec.
tag
O nome do tipo dado à classe. A marca se torna uma palavra reservada no escopo da classe. A marca é opcional. Se omitida, uma classe anônima será definida. Para obter mais informações, confira Tipos Anônimos de Classes.
base-list
A lista opcional de classes ou estruturas da qual esta classe derivará seus membros. Confira Classes Base para obter mais informações. Cada nome de classe base ou estrutura pode ser precedido por um especificador de acesso (público, privado, protegido) e pela palavra-chave virtual. Confira a tabela de acesso do membro em Controlando o Acesso a Membros de Classe para obter mais informações.
member-list
Lista de membros da classe. Confira a Visão Geral do Membro de Classe para obter mais informações.
declarators
Lista de declaradores que especifica os nomes de uma ou mais instâncias do tipo da classe. Os declaradores podem incluir listas de inicializadores se todos os membros de dados da classe forem public
. Isso é mais comum nas estruturas, cujos membros de dados são public
por padrão, em vez de classes. Confira a Visão Geral dos Declaradores para obter mais informações.
Comentários
Para obter mais informações sobre as classes em geral, consulte um dos seguintes tópicos:
Para obter mais informações sobre classes e estruturas gerenciadas em C++/CLI e C++/CX, confira Classes e Estruturas
Exemplo
// class.cpp
// compile with: /EHsc
// Example of the class keyword
// Exhibits polymorphism/virtual functions.
#include <iostream>
#include <string>
using namespace std;
class dog
{
public:
dog()
{
_legs = 4;
_bark = true;
}
void setDogSize(string dogSize)
{
_dogSize = dogSize;
}
virtual void setEars(string type) // virtual function
{
_earType = type;
}
private:
string _dogSize, _earType;
int _legs;
bool _bark;
};
class breed : public dog
{
public:
breed( string color, string size)
{
_color = color;
setDogSize(size);
}
string getColor()
{
return _color;
}
// virtual function redefined
void setEars(string length, string type)
{
_earLength = length;
_earType = type;
}
protected:
string _color, _earLength, _earType;
};
int main()
{
dog mongrel;
breed labrador("yellow", "large");
mongrel.setEars("pointy");
labrador.setEars("long", "floppy");
cout << "Cody is a " << labrador.getColor() << " labrador" << endl;
}
Confira também
Comentários
https://aka.ms/ContentUserFeedback.
Brevemente: Ao longo de 2024, vamos descontinuar progressivamente o GitHub Issues como mecanismo de feedback para conteúdos e substituí-lo por um novo sistema de feedback. Para obter mais informações, veja:Submeter e ver comentários