[C++] Espacio de nombres, etc.——Meow Meow quiere comer C Quack

Espero que estés feliz, espero que estés sano, espero que estés feliz, ¡espero que te guste!

Finalmente, sigue a miau, sigue a miau, sigue a miau, ¡verás más blogs interesantes! ! !

Miau miau miau, ¡eres muy importante para mí!

Tabla de contenido

Prefacio

Descripción general de las palabras clave de C++, detallada más adelante

Espacios de nombres

 Definición de espacio de nombres

Uso de espacios de nombres

Entrada y salida de C++

Parámetros predeterminados

sobrecarga de funciones

definición

Cita

función en línea

Resumir


Prefacio

Sin más, ¡apurémonos!


Descripción general de las palabras clave de C++, detallada más adelante


Espacios de nombres

EnC/C++, hay una gran cantidad de variables, funciones y clases que se aprenderán más adelante. Estas variables, funciones y Todos los nombres de las clases existirán en el ámbito global, lo que podría causar muchos conflictos. El propósito de utilizar espacios de nombres es localizar los nombres de los identificadores para evitar conflictos de nombres o contaminación de nombres< La aparición de /a Las palabras clave > están dirigidas a este problema. espacio de nombres,


 Definición de espacio de nombres

Para definir un espacio de nombres, debe utilizar laespacio de nombrespalabra clave, seguida de< a i=4>El nombre del espacio de nombres, luegoseguido de un par{} Eso es todo, {} es miembro del espacio nombrado .

// 命名空间中可以定义变量/函数/类型
namespace miao
{
int rand = 10;

int Add(int left, int right)
{
return left + right;
}

struct Node
{
struct Node* next; int val;
};


//也可以嵌套
namespace N1
{
int a; int b;
int Add(int left, int right)
{
return left + right;
}

namespace N2
{
int c; int d;
int Sub(int left, int right)
{
return left - right;
}
}
}




//同一个工程中允许存在多个相同名称的命名空间,编译器最后会合成同一个命名空间中。
//多个文件有相同命名空间,将会合并。


Uso de espacios de nombres

Las variables/funciones/tipos se pueden definir en el espacio de nombres

Tres usos de los espacios de nombres:

  • Agregar el nombre del espacio de nombres y el calificador de alcance

  • int main()
    {
        printf("%d\n", N::a);
    	return 0;
    }
    
  • Agregar el nombre del espacio de nombres y el calificador de alcance

  • 	using N::b;
    	int main()
    	{
        printf("%d\n", N::a);
    	printf("%d\n", b);
    	return 0;
    	}
    
  • Usandousando el espacio de nombres Introducción al nombre del espacio de nombres

	using namespce N;
	int main()
	{
	printf("%d\n", N::a);
	printf("%d\n", b);
	Add(10, 20);
	return 0;
	}

Entrada y salida de C++

#include<iostream>
// std是C++标准库的命名空间名,C++将标准库的定义实现都放到这个命名空间中 
using namespace std;
int main()
{
cout<<"Hello world!!!"<<endl; 
return 0;
}

objeto de salida estándar cout (consola)

objeto de entrada estándar cin (teclado)

<< es el operador de inserción de flujo, >> es el operador de extracción de flujo


Parámetros predeterminados

Los parámetros predeterminados sonAl declarar o definir una funciónespecifique un valor predeterminado para los parámetros de la función < /span>

  • Todos los parámetros predeterminados
  • parámetros semi-predeterminados

Aviso:

  1. Los parámetros semipredeterminados deben proporcionarse de derecha a izquierda y no se pueden proporcionar a intervalos
  2. La omisión de parámetros no puede aparecer tanto en la declaración como en la definición de función.
  3. El valor predeterminado debe ser una variable constante o global.

  4. El lenguaje C no es compatible (el compilador no lo admite)

  5. Nota: Si las ubicaciones de declaración y definición aparecen al mismo tiempo y los valores proporcionados por las dos ubicaciones son diferentes, el compilador no puede determinar qué valor predeterminado se debe utilizar.


sobrecarga de funciones

definición

Sobrecarga de funciones: es un caso especial de función,C++ permite la entrada< a i=4>En el mismo ámbito declarar varias funciones del mismo nombre con funciones similares. Lista de parámetros formales(Número de parámetros o Tipo o Escriba orden)Diferente< a i=17> , a menudo se utiliza para abordar el problema de implementar funciones similares pero diferentes tipos de datos.

	#include<iostream>
	using namespace std; 3
	// 1、参数类型不同
	int Add(int left, int right)
	{
	cout << "int Add(int left, int right)" << endl; 8
	return left + right;
	}

	double Add(double left, double right)
	{
	cout << "double Add(double left, double right)" << endl; 15
	return left + right;
	}

	// 2、参数个数不同
	void f()
	{
	cout << "f()" << endl;
	}

	void f(int a)
	{
	cout << "f(int a)" << endl;
	}

	// 3、参数类型顺序不同
	void f(int a, char b)
	{
	cout << "f(int a,char b)" << endl;
	}

	void f(char b, int a)
	{
	cout << "f(char b, int a)" << endl;
	}

	int main()
	{
	Add(10, 20);
	Add(10.1, 20.2);

	f();
	f(10);

	f(10, 'a');
	f('a', 10);
 
	
return 0;
}	

Cita

Referencia no es una nueva definición de una variable, pero es un alias para una variable existente El compilador no asignará espacio de memoria para la variable de referencia, comparte el mismo espacio de memoria que la variable a la que hace referencia. (Ese es el apodo, es esa persona)

Tipo y nombre de variable de referencia (nombre de objeto) = entidad de referencia

void TestRef()
{
int a = 10;
int& ra = a;//<==定义引用类型
printf("%p\n", &a);
printf("%p\n", &ra);
}

//Tipo de citaSuma requerida de la cotizaciónPropiedadmismo tipotipo

//Las referencias no pueden referirse a constantes

//Las referencias se pueden utilizar como parámetros o valores de retorno.


función en línea

La función modificada coninline se llama función en línea, Al compilarC++, el compilador se expandirá donde llama a funciones en línea, no hay sobrecarga de llamadas a funciones para establecer marcos de pila y las funciones en línea mejoran la eficiencia de la operación del programa.

inline es un método de intercambiar espacio por tiempo. Si el compilador trata la función como una Procesamiento interno de funciones vinculadas, en la fase de compilación , la llamada a la función se reemplazará con el cuerpo de la función. Desventaja: puede agrandar el archivo de destino. Ventaja : menos gastos generales de llamadas. , mejora la eficiencia de operación del programa

inline es solo una sugerencia para el compilador. Diferentes compiladores pueden tener diferentes mecanismos de implementación para inline Diferente, consejo general: hacer la función más pequeña( es decir, la La función no es muy larga, no hay una explicación precisa, depende de la implementación interna del compilador), no es recursivo y se llama con frecuencia < Las funciones de /span>en líneaCaracterísticas; de lo contrario, el compilador ignorará inline están decoradas con


Resumir

Cavando un hoyo, Miaomiao quiere escribir un blog sobre el análisis del preprocesamiento, la compilación, el ensamblaje, la vinculación y la ejecución de este conjunto de programas. whee


Espero que estés feliz, espero que estés sano, espero que estés feliz, ¡espero que te guste!

Finalmente, sigue a miau, sigue a miau, sigue a miau, ¡verás más blogs interesantes! ! !

Miau miau miau, ¡eres muy importante para mí!

Supongo que te gusta

Origin blog.csdn.net/ormstq/article/details/134126395
Recomendado
Clasificación