Non proprio.
Una classe è "come un tipo di dati" nel senso che è un modello per la creazione di un oggetto, ma non è di per sé un oggetto che è possibile utilizzare.
Quando si utilizza quel modello per creare un'istanza di un oggetto, è possibile utilizzare tale oggetto. Puoi creare tutte le istanze che vuoi - puoi pensare a quelle istanze come variabili.
Ad esempio:
class Person
{
public:
Person() : name("Joe Bloggs") {}
std::string getName() { return name; }
void setName(std::string n) { name = n; }
private:
std::string name;
};
Si tratta di una definizione di classe per una persona. Non è una variabile. Non puoi chiamare setName su di esso perché non esiste ancora. Ma quando si fa:
int main()
{
Person p, q;
p.setName("Jill Bloggs");
q.setName("Bob King");
std::cout << p.getName() << " " << q.getName() << std::endl;
}
si è creato due casi di persone che è possibile assegnare a, cambiamento, e l'uso - sono variabili chiamate istanze.
Non ho idea di cosa significhi "modulo dati", ignoralo.
Per quanto riguarda la dichiarazione, la dichiarazione dichiara che sarà presente un'istanza di qualcosa. Ad esempio, se si vuole creare una classe, e il file di intestazione aveva:
class foo
{
public:
foo(int value);
void bar();
private:
int x;
};
si dichiara che si dispone di una funzione denominata barra che restituisce void e che si dispone di un intero chiamato x.
Nessuna memoria è allocata per la variabile, x, e nessuna definizione è fornita o bar, quindi sono solo dichiarazioni. Il file di origine probabilmente fornire definizione per bar come:
void foo::bar()
{
//some code
}
e definiton costruttore per foo che inizializza x con un valore e controllare come è stato creato (con una lista di inizializzazione):
foo::foo(int value) : x(value)
{
//some code
}
Perché così tanti downvotes? – TeaOverflow
Non lo so; Ho pensato che le domande sarebbero state semplici e ho avuto il tempo di scrivere le domande in modo da poterle restituire in modo efficiente. – Ayfiaru
Penso che sia un po 'duro. Se sta già leggendo un libro ed è confuso, sono domande valide. –