¿Podemos llamar a una función no declarada en C++?

Llamar a una función no declarada es un estilo deficiente en C (Ver this ) e ilegal en C++ y también lo es pasar argumentos a una función usando una declaración que no enumera los tipos de argumento.
Si llamamos a una función no declarada en C y la compilamos, funciona sin ningún error. Pero, si llamamos a una función no declarada en C++, no compila y genera errores.

En el siguiente ejemplo, el código funcionará bien en C, 

C

// C Program to demonstrate calling an undeclared function
#include <stdio.h>
 
// Argument list is not mentioned
void f();
 
// Driver Code
int main()
{
    // This is considered as poor style in C, but invalid in
    // C++
    f(2);
    getchar();
    return 0;
}
 
void f(int x) { printf("%d", x); }
Producción

2

Complejidad de tiempo: O(1)

Espacio Auxiliar: O(1)

 Sin embargo, si ejecuta el código anterior en C++, no compilará y generará un error, 

C++

// CPP Program to demonstrate calling an undeclared function
#include <bits/stdc++.h>
using namespace std;
 
// Argument list is not mentioned
void f();
 
// Driver Code
int main()
{
    // This is considered as poor style in C, but invalid in
    // C++
    f(2);
    getchar();
    return 0;
}
 
void f(int x) { cout << x << endl; }

Producción

prog.cpp: In function ‘int main()’:
prog.cpp:13:8: error: too many arguments to function ‘void f()’
    f(2);
       ^
prog.cpp:6:6: note: declared here
void f();
     ^

Complejidad de tiempo: O(1)

Espacio Auxiliar: O(1)

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *