Arquivos Externos
Parte da seção Programação Orientada a Objetos do Journey de C++ da Coddy — lição 1 de 104.
Em C++, o código é dividido em vários arquivos e conectado usando diretivas #include.
Um arquivo separado MyClass.h
#include <string>
class MyClass {
public:
std::string greet() {
return "Hello from MyClass!";
}
};Inclua e use-o em seu arquivo principal
#include <iostream>
#include "MyClass.h"
int main() {
MyClass obj;
std::cout << obj.greet() << std::endl;
return 0;
}Saída:
Hello from MyClass!Use aspas duplas "" para seus próprios arquivos e colchetes angulares <> para cabeçalhos de sistema/biblioteca. A diretiva #include copia o conteúdo do arquivo para o seu código-fonte antes da compilação.
Desafio
FácilInclua o arquivo de cabeçalho MyClass.h no main.cpp, crie um objeto MyClass e imprima o resultado da chamada de greet().
Formato de impressão: Greeting: <result>
Folha de consulta
Em C++, o código é dividido em vários arquivos e conectado usando diretivas #include.
Use colchetes angulares <> para cabeçalhos de sistema/biblioteca:
#include <iostream>
#include <string>Use aspas duplas "" para seus próprios arquivos de cabeçalho:
#include "MyClass.h"Exemplo de arquivo de cabeçalho MyClass.h:
#include <string>
class MyClass {
public:
std::string greet() {
return "Hello from MyClass!";
}
};Usando o cabeçalho em main.cpp:
#include <iostream>
#include "MyClass.h"
int main() {
MyClass obj;
std::cout << obj.greet() << std::endl;
return 0;
}Experimente você mesmo
#include <iostream>
#include <string>
// TODO: Inclua o arquivo de cabeçalho MyClass
int main() {
std::string testCase;
std::getline(std::cin, testCase);
// TODO: Crie um objeto MyClass e chame greet()
std::cout << "Test completed" << std::endl;
return 0;
}Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.
Todas as lições de Programação Orientada a Objetos
1Fundamentos de OOP
Arquivos ExternosBuild e Compilação em C++Arquivos Header e SourceNamespaces e EscopoIntrodução a OOP em C++Classes vs ObjetosO Ponteiro 'this'Métodos (Funções Membro)Atributos (Membros de Dados)Básico de Ctors e DtorsRecapitulação - Calculadora Simples4Propriedades de Classe
Membros de Instância vs EstáticosGetters e SettersFunções de Membro ConstPalavra-chave MutableMétodos e Variáveis EstáticosFunções e Classes FriendRecapitulação - Gerenciador de Conta Bancária7Herança
Herança BásicaNíveis de Acesso na HerançaOrdem de Chamada de Ctor e DtorSobrescrita de MétodosFunções Virtuais e VTableHerança MúltiplaHerança VirtualRecapitulação - Hierarquia de Funcionários2Gerenciamento de Memória
Memória Stack vs HeapPonteiros e ReferênciasMemória Dinâmica (new/delete)Smart Pointers em C++RAII em C++Recapitulação - Gerenciador de Array Dinâmico5Encapsulamento
Especificadores de Acesso em C++Especificadores de Acesso em DetalhesOcultação de InformaçãoStruct vs ClassClasses Aninhadas e InternasRecapitulação - Sistema de Registros de Alunos8Polimorfismo
Polimorfismo de Compilação vs Tempo de ExecuçãoSobrecarga de FunçõesFunções Virtuais RevisitadasFunções Virtuais PurasClasses AbstratasDesign de Interfaces em C++Dynamic Casting e RTTIRecapitulação - Calculadora de Formas3Construtores e Destrutores
Construtor PadrãoConstrutor ParametrizadoConstrutor de CópiaConstrutor de MovimentaçãoListas de Inicialização do ConstrutorConstrutores DelegadosMergulho Profundo em DestrutoresRegra dos Três / Cinco / ZeroRecapitulação - Classe String6Sobrecarga de Operadores
Introdução à Sobrecarga de OperadoresSobrecarga de Operadores AritméticosSobrecarga de Operadores de ComparaçãoOperadores de StreamSobrecarga do Operador de AtribuiçãoSobrecarga dos Operadores [] e ()Operadores de Conversão de TipoRecapitulação - Classe Matrix9Templates
Templates de FunçãoTemplates de ClasseEspecialização de TemplatesTemplates VariádicosFundamentos de SFINAE e Type TraitsRecapitulação - Container Genérico