Как реализовать функцию из пространства имен? - PullRequest
3 голосов
/ 20 апреля 2011

По сути, это мой исходный код.

namespace name {  
    int func (void);  
}

int main (void) {  
    name::int func (void) {  
        //body
    }  
    return 0;  
}

Теперь я хочу написать эту функцию, объявленную в пространстве имен, в другом месте.

Ответы [ 2 ]

9 голосов
/ 20 апреля 2011

Вы не можете определить функцию внутри другой функции, подобной этой. Есть два варианта:

Откройте пространство имен и определите функцию внутри него:

namespace name {
    int func() {
        // body
    }
}

За пределами пространства имен (а также вне определения любой функции или класса) определите его, используя его полное имя:

int name::func() {
    // body
}
2 голосов
/ 20 апреля 2011

Вы не можете определить функцию внутри функции в C ++.

Это работает

namespace name {  
    int func (void);  
}
int name::func (void) {  
        //body
} 
int main (void) {  

    return 0;  
}
...