Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[C++] przestrzenie nazw + wskaźniki + funkcje

Ostatnio zmodyfikowano 2012-11-16 21:36
Autor Wiadomość
soltaire33
Temat założony przez niniejszego użytkownika
[C++] przestrzenie nazw + wskaźniki + funkcje
» 2012-11-16 20:43:05
C/C++
#include <iostream>
using namespace std;

int dupa::wypiszTekst();
int( * wskF )();

int main()
{
    wskF = & dupa::wypiszTekst;
    ( * wskF )();
    // zeby nie zamykalo programu
    int x;
    cin >> x;
}

namespace dupa
{
    int wypiszTekst()
    {
        cout << "Test" << endl;
        return 1;
    }
}

jak moge uzyc tu przestrzeni nazw? bez przestrzeni działa, ale interesuje mnie to jak tu użyć przestrzeni we wskaźniku
P-69389
cyklopek11
» 2012-11-16 21:12:01
Ten powyższy kod kompiluje Ci się???


P-69391
soltaire33
Temat założony przez niniejszego użytkownika
» 2012-11-16 21:18:44
------ Build started: Project: testxd, Configuration: Debug Win32 ------
Compiling...
test.cpp
c:\documents and settings\...\moje dokumenty\visual studio 2008\projects\testxd\testxd\test.cpp(4) : error C2653: 'dupa' : is not a class or namespace name
c:\documents and settings\...\moje dokumenty\visual studio 2008\projects\testxd\testxd\test.cpp(9) : error C2653: 'dupa' : is not a class or namespace name
Build log was saved at "file://c:\Documents and Settings\...\Moje dokumenty\Visual Studio 2008\Projects\testxd\testxd\Debug\BuildLog.htm"
....

nie jak widać, pisze ze dupa nie jest nazwą przestrzeni nazw

ale jak sobie dam bez przestrzeni nazw to działa, nie jest mi ona do niczego potrzebna ale z ciekawości chciałbym wiedzieć.

C/C++
#include <iostream>
using namespace std;

int wypiszTekst();
int( * wskF )();

int main()
{
    wskF = & wypiszTekst;
    ( * wskF )();
    // zeby nie zamykalo programu
    int x;
    cin >> x;
}

int wypiszTekst()
{
    cout << "Test" << endl;
    return 1;
}

to jak widać bez przestrzeni nazw działa/ kompiluje się
P-69392
soltaire33
Temat założony przez niniejszego użytkownika
» 2012-11-16 21:28:48
rozwiązałem problem
C/C++
#include <iostream>
using namespace std;

namespace dupa
{
    int wypiszTekst()
    {
        cout << "Test" << endl;
        return 1;
    }
}

int( * wskF )();

int main()
{
    wskF = & dupa::wypiszTekst;
    ( * wskF )();
    // zeby nie zamykalo programu
    int x;
    cin >> x;
}

dałem namespace na początek, ale czy mógłby mi ktoś wytłumaczyć czemu nie można dać gdzieś tego za funkcją main i zdeklarować na początku przed funkcją main?
P-69393
cyklopek11
» 2012-11-16 21:32:00
C/C++
using namespace std;

namespace dpa
{
    int wypiszTekst()
    {
        cout << "Test" << endl;
        return 1;
    }
}


int dpa::wypiszTekst();
int( * wskF )();

int main()
{
    wskF = & dpa::wypiszTekst;
    ( * wskF )();
    // zeby nie zamykalo programu
    cin.get();
    return 0;
}
Nie używaj takich "brzydkich" nazw bo Cię może spotkać ban.
P-69394
cyklopek11
» 2012-11-16 21:36:47
Deklaracje i definicje funkcji muszą być wewnątrz:
C/C++
namespace dpa
{
    //deklaracja lub definicja
}
P-69395
« 1 »
  Strona 1 z 1